我在 Django 中有以下设置
class Class1(Model):
search_field = IntegerField()
field2 = ForeignKey(Class2)
class Class2(Model):
field3 = ForeignKey(Class3)
class Class3(Model):
#lots of useful stuff...
我正在 Class1
中进行查询,目的是取回 Class3
的实例,但是 Class1
和 Class2
有很多我不想加载的信息,所以我想使用 values
(或者让我更有效地执行此操作的东西)。我做类似的事情
q = Class1.objects.filter(search_field=search_criteria).values('field2__field3').latest()
但是当这回来时,我得到一个看起来像这样的字典:
{'field2__field3': ID}
其中 ID
是 Class3
实例的键。有没有办法直接从 values
(或其他一些查询实用程序)获取类的实例?
最佳答案
Django 查询的一个简单规则是始终查询您想要返回的内容。所以如果你想要一个 Class3
,就用它开始你的查询。
Class3.objects.filter(class2__class1__search_field=search_criterion).latest()
关于python - 在 Django 查询中使用 values() 来获取模型而不是 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28993293/