gpt4 book ai didi

python - django 'QuerySet' 对象中的反向关系没有属性 'name'

转载 作者:行者123 更新时间:2023-12-05 03:51:35 36 4
gpt4 key购买 nike

我有两个模型,分别称为 car 和 producer。这两个模型之间存在多对一关系。

class Producer(models.Model):
name = models.CharField(max_length=30)

def __str__(self):
return self.name

class Car(models.Model):
name = models.CharField(max_length=20)
producer = models.ForeignKey(Producer, on_delete=models.CASCADE)

def __str__(self):
return self.name here

当我尝试查询反向关系时。

Producer.objects.filter(car__name='Mini')

然后它返回一个查询集对象

<QuerySet [<Producer: BMW>]>

当我尝试将查询集对象分配给一个变量并获取名称字段结果时,它给出了错误。

obj1 = Producer.objects.filter(car__name='Mini')
In [6]: obj1.name
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-6-5155cb2773b4> in <module>
----> 1 obj1.name

AttributeError: 'QuerySet' object has no attribute 'name'

这个错误可能是什么原因

最佳答案

什么时候使用get() Django返回一个对象,你可以得到那个对象的变量,比如obj1.name,但是当你使用filter,Django 返回一个 Queryset,你必须用 for 迭代查询集:

mini_producers = Producer.objects.filter(car__name='Mini')

for producer in mini_producers:
print(producer.name)

关于python - django 'QuerySet' 对象中的反向关系没有属性 'name',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62797709/

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