Changeset 9245
- Timestamp:
- 10/22/08 18:09:35 (3 months ago)
- Files:
-
- django/trunk/django/contrib/admin/views/main.py (modified) (2 diffs)
- django/trunk/tests/regressiontests/admin_views/tests.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/contrib/admin/views/main.py
r9211 r9245 100 100 paginator = Paginator(self.query_set, self.list_per_page) 101 101 # Get the number of objects, with admin filters applied. 102 try: 103 result_count = paginator.count 104 # Naked except! Because we don't have any other way of validating 105 # "params". They might be invalid if the keyword arguments are 106 # incorrect, or if the values are not in the correct type (which would 107 # result in a database error). 108 except: 109 raise IncorrectLookupParameters 102 result_count = paginator.count 110 103 111 104 # Get the total number of objects, with no admin filters applied. … … 193 186 194 187 # Apply lookup parameters from the query string. 195 qs = qs.filter(**lookup_params) 188 try: 189 qs = qs.filter(**lookup_params) 190 # Naked except! Because we don't have any other way of validating "params". 191 # They might be invalid if the keyword arguments are incorrect, or if the 192 # values are not in the correct type, so we might get FieldError, ValueError, 193 # ValicationError, or ? from a custom field that raises yet something else 194 # when handed impossible data. 195 except: 196 raise IncorrectLookupParameters 196 197 197 198 # Use select_related() if one of the list_display options is a field django/trunk/tests/regressiontests/admin_views/tests.py
r9241 r9245 161 161 "Changelist filter not correctly limited by limit_choices_to." 162 162 ) 163 163 164 def testIncorrectLookupParameters(self): 165 """Ensure incorrect lookup parameters are handled gracefully.""" 166 response = self.client.get('/test_admin/admin/admin_views/thing/', {'notarealfield': '5'}) 167 self.assertRedirects(response, '/test_admin/admin/admin_views/thing/?e=1') 168 response = self.client.get('/test_admin/admin/admin_views/thing/', {'color__id__exact': 'StringNotInteger!'}) 169 self.assertRedirects(response, '/test_admin/admin/admin_views/thing/?e=1') 170 164 171 def get_perm(Model, perm): 165 172 """Return the permission object, for the Model"""
