summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/views/display.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/packages/views/display.py b/packages/views/display.py
index 02f5a5b..31f18c7 100644
--- a/packages/views/display.py
+++ b/packages/views/display.py
@@ -132,8 +132,16 @@ def group_details(request, arch, name):
def files(request, name, repo, arch):
- pkg = get_object_or_404(Package,
- pkgname=name, repo__name__iexact=repo, arch__name=arch)
+ try:
+ pkg = Package.objects.get(pkgname=name,
+ repo__name__iexact=repo, arch__name=arch)
+ except Package.DoesNotExist:
+ # this may have been deleted recently, so follow the same logic as we
+ # do on the package details page if possible
+ ret = recently_removed_package(request, name, repo, arch)
+ if ret is not None:
+ return ret
+ raise Http404
# files are inserted in sorted order, so preserve that
fileslist = PackageFile.objects.filter(pkg=pkg).order_by('id')
dir_count = sum(1 for f in fileslist if f.is_directory)