Нельзя полагаться на первичный ключ, чтобы узнать, что было добавлено в последний раз. Вам лучше добавить временную метку для этого. Таким образом, вы можете изменить свою модель на:
class Parent(models.Model):
name = models.CharField(max_length=128)
class child(models.Model):
parent = models.ForeignKey(Parent, on_delete=models.CASCADE)
created = models.DateTimeField(<b>auto_now_add=True</b>)
Тогда вы можете получить родителя с самым последним потомком с:
Parent.objects.filter(pk__in=<i>list_of_parents</i>).order_by(<b>'-child__created'</b>).first()
Это вернет объект Parent
, если такой родительский элемент существует, и None
в противном случае.
Если добавление временной метки является , а не параметром, вы можете попробовать работать с первичным ключом, но база данных не само по себе распределяет значения первичного ключа в определенном порядке:
# does <i>not</i> per se works
Parent.objects.filter(pk__in=<i>list_of_parents</i>).order_by(<b>'-child__pk'</b>).first()