mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #31538 -- Fixed Meta.ordering validation lookups that are not transforms.
Regression in 440505cb2c.
Thanks Simon Meers for the report.
			
			
This commit is contained in:
		| @@ -1747,7 +1747,9 @@ class Model(metaclass=ModelBase): | ||||
|                     else: | ||||
|                         _cls = None | ||||
|                 except (FieldDoesNotExist, AttributeError): | ||||
|                     if fld is None or fld.get_transform(part) is None: | ||||
|                     if fld is None or ( | ||||
|                         fld.get_transform(part) is None and fld.get_lookup(part) is None | ||||
|                     ): | ||||
|                         errors.append( | ||||
|                             checks.Error( | ||||
|                                 "'ordering' refers to the nonexistent field, " | ||||
|   | ||||
| @@ -9,4 +9,5 @@ Django 3.0.7 fixes several bugs in 3.0.6. | ||||
| Bugfixes | ||||
| ======== | ||||
|  | ||||
| * ... | ||||
| * Fixed a regression in Django 3.0 by restoring the ability to use field | ||||
|   lookups in ``Meta.ordering`` (:ticket:`31538`). | ||||
|   | ||||
| @@ -893,6 +893,15 @@ class OtherModelTests(SimpleTestCase): | ||||
|         with register_lookup(models.CharField, Lower): | ||||
|             self.assertEqual(Model.check(), []) | ||||
|  | ||||
|     def test_ordering_pointing_to_lookup_not_transform(self): | ||||
|         class Model(models.Model): | ||||
|             test = models.CharField(max_length=100) | ||||
|  | ||||
|             class Meta: | ||||
|                 ordering = ('test__isnull',) | ||||
|  | ||||
|         self.assertEqual(Model.check(), []) | ||||
|  | ||||
|     def test_ordering_pointing_to_related_model_pk(self): | ||||
|         class Parent(models.Model): | ||||
|             pass | ||||
|   | ||||
		Reference in New Issue
	
	Block a user