Ticket #11191: 11191.diff
File 11191.diff, 2.4 KB (added by , 15 years ago) |
---|
-
django/contrib/admin/options.py
6 6 from django.contrib.admin import widgets 7 7 from django.contrib.admin import helpers 8 8 from django.contrib.admin.util import unquote, flatten_fieldsets, get_deleted_objects, model_ngettext, model_format_dict 9 from django.core.exceptions import PermissionDenied 9 from django.core.exceptions import PermissionDenied, ValidationError 10 10 from django.db import models, transaction 11 11 from django.db.models.fields import BLANK_CHOICE_DASH 12 12 from django.http import Http404, HttpResponse, HttpResponseRedirect … … 788 788 model = self.model 789 789 opts = model._meta 790 790 791 queryset = self.queryset(request) 791 792 try: 792 obj = self.queryset(request).get(pk=unquote(object_id)) 793 except model.DoesNotExist: 793 pk = queryset.model._meta.pk.to_python(unquote(object_id)) 794 obj = queryset.get(pk=pk) 795 except (model.DoesNotExist, ValidationError): 794 796 # Don't raise Http404 just yet, because we haven't checked 795 797 # permissions yet. We don't want an unauthenticated user to be able 796 798 # to determine whether a given object exists. -
tests/regressiontests/admin_views/tests.py
63 63 64 64 def testBasicEditGet(self): 65 65 """ 66 A smoke test to ensure GET on the change_view works.66 A smoke test to ensure GET on the change_view works. 67 67 """ 68 68 response = self.client.get('/test_admin/%s/admin_views/section/1/' % self.urlbit) 69 69 self.failUnlessEqual(response.status_code, 200) 70 70 71 def testBasicEditGetStringPK(self): 72 """ 73 A smoke test to ensure GET on the change_view works (returns an HTTP 74 404 error, see #11191) when passing a string as the PK argument for a 75 model with an integer PK field. 76 """ 77 response = self.client.get('/test_admin/%s/admin_views/section/abc/' % self.urlbit) 78 self.failUnlessEqual(response.status_code, 404) 79 71 80 def testBasicAddPost(self): 72 81 """ 73 82 A smoke test to ensure POST on add_view works.