gpt4 book ai didi

python - Django - 选择链接到自身的模型

转载 作者:太空宇宙 更新时间:2023-11-04 05:40:57 25 4
gpt4 key购买 nike

果冻!

我现在正在使用 django,我有一个问题,我怀疑有一个简单的解决方案,但我在尝试找到它时遇到了很多困难(大多数相关关键字往往将谷歌指向错误地点)。

我希望根据以下条件过滤查询:模型有一个指向自身的字段

我举个例子:

class Person(models.Model):
name = models.CharField(max_length=20)
parent = models.ForeignKey('app.Person', null=True)

gramps = Person.objects.create(name='Tod', parent=None)
pops = Person.objects.create(name='Hank', parent=gramps)
sonny_boy = Person.objects.create(name='Tim', parent=pops)

temporal_paradox_dude = Person.objects.create(name='Emmett')
temporal_paradox_dude.parent = temporal_paradox_dude
temporal_paradox_dude.save()

temporal_paradox_dude_2 = Person.objects.create(name='Arnold')
temporal_paradox_dude_2.parent = temporal_paradox_dude_2
temporal_paradox_dude_2.save()

所以问题是,在这种情况下,我如何查询 Person 表,只查询时间矛盾的人?

>>> Person.objects.filter(parent=SOME_WAY_OF_DECLARING_ITSELF)
[ 'Emmett', 'Arnold' ]

我需要用什么替换 SOME_WAY_OF_DECLARING_ITSELF 以获得链接到自身的模型?

谢谢!

最佳答案

我想你正在寻找这样的东西;

from django.db.models import F

Person.objects.filter(parent_id=F('id'))

关于python - Django - 选择链接到自身的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33922408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com