gpt4 book ai didi

django - prefetch_related() 的无效参数

转载 作者:行者123 更新时间:2023-12-03 10:19:58 25 4
gpt4 key购买 nike

我正在尝试使用 PersonScore 对这 3 个表进行内部联接,但找不到 persontype。我究竟做错了什么?

楷模:

class PersonScore(models.Model):
id = models.IntegerField(primary_key=True) # AutoField?
person = models.ForeignKey(‘Person’)

class Person(models.Model):
id = models.IntegerField(primary_key=True) # AutoField?
name = models.CharField(max_length=255)

class PersonType(models.Model):
person = models.ForeignKey(‘Person’)
type = models.CharField(max_length=255)

代码:
PersonScore.objects.filter(person__name="Bob").prefetch_related("person__persontype")

错误:
Cannot find 'persontype' on Person object, 'person__persontype' is an invalid parameter to prefetch_related()

代码:
PersonScore.objects.filter(person__name="Bob").prefetch_related("person__persontype_set")

错误:
KeyError: (1L,)

最佳答案

在 PersonScore 中,您应该使用 select_related 而不是 prefetch_related

    PersonScore.objects.filter(person__name="Bob").select_related("person__persontype")

如果你想使用 prefetch_related,你将使用它与 Person
    Person.objects.filter(personscore_set__name="Bob").prefetch_related("personscore_set"

您可以在此处查看更多详细信息: What's the difference between select_related and prefetch_related in Django ORM?

我希望这对你有帮助。

关于django - prefetch_related() 的无效参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45513299/

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