Python 如何从Django中的多对多字段中获取名称?
我对Django很陌生。 我有以下代码:Python 如何从Django中的多对多字段中获取名称?,python,django,django-orm,Python,Django,Django Orm,我对Django很陌生。 我有以下代码: class ModelA(models.Model): name = models.CharField(max_length=30) class ModelB(models.Model): name = models.ManytoManyField(ModelA) colour = models.CharField(max_lenght=30) iob = ModelB.objects.filter(name=name) 现
class ModelA(models.Model):
name = models.CharField(max_length=30)
class ModelB(models.Model):
name = models.ManytoManyField(ModelA)
colour = models.CharField(max_lenght=30)
iob = ModelB.objects.filter(name=name)
现在,这很好:
for i in iob:
print i.colour
我想做一些类似的事情:
for i in iob:
print i.name
但这并不一定有效。它的输出如下:
<django.db.models.fields.related.ManyRelatedManager object at 0x30a2e50>
我想打印name的值。如何做到这一点?由于这是一个多对多的过程,您需要执行以下操作:
for i in iob:
print i.colour
for obj_name in i.name.all()
print obj_name.name
那不行。它给出了一个错误:
AttributeError:“ManyRelatedManager”对象没有属性“name”
抱歉,刚刚编辑过。我以为iob是一个对象。不是查询集