mirror of https://github.com/django/django.git
Fixed #30798 -- Fixed Meta.ordering validation for pk of related fields.
Regression in 440505cb2c
.
This commit is contained in:
parent
c7944628a1
commit
95a11578ce
|
@ -1708,7 +1708,11 @@ class Model(metaclass=ModelBase):
|
|||
fld = None
|
||||
for part in field.split(LOOKUP_SEP):
|
||||
try:
|
||||
fld = _cls._meta.get_field(part)
|
||||
# pk is an alias that won't be found by opts.get_field.
|
||||
if part == 'pk':
|
||||
fld = _cls._meta.pk
|
||||
else:
|
||||
fld = _cls._meta.get_field(part)
|
||||
if fld.is_relation:
|
||||
_cls = fld.get_path_info()[-1].to_opts.model
|
||||
else:
|
||||
|
|
|
@ -844,6 +844,18 @@ class OtherModelTests(SimpleTestCase):
|
|||
with register_lookup(models.CharField, Lower):
|
||||
self.assertEqual(Model.check(), [])
|
||||
|
||||
def test_ordering_pointing_to_related_model_pk(self):
|
||||
class Parent(models.Model):
|
||||
pass
|
||||
|
||||
class Child(models.Model):
|
||||
parent = models.ForeignKey(Parent, models.CASCADE)
|
||||
|
||||
class Meta:
|
||||
ordering = ('parent__pk',)
|
||||
|
||||
self.assertEqual(Child.check(), [])
|
||||
|
||||
def test_ordering_pointing_to_foreignkey_field(self):
|
||||
class Parent(models.Model):
|
||||
pass
|
||||
|
|
Loading…
Reference in New Issue