在模型中有许多领域,
来自emp.models导入名称
def info(request):
name = models.ManyToManyField(Name)
在emp.models中,架构为
class Name(models.Model):
name = models.CharField(max_length=512)
def __unicode__(self):
return self.name
现在,当我想查询特定的id时,请说:
info= info.objects.filter(id=a)
for i in info:
logging.debug(i.name) //gives an error
查询应如何获取名称
谢谢..
答案 0 :(得分:3)
info.name
为ManyToManyField
因此,如果您希望与其关联的所有Name
个对象,则必须使用.all()
方法。只有这样你才能获得Name
个对象的列表(查询集):
info_list = info.objects.filter(id=a)
for info_object in info_list:
for name_object in info_object.name.all():
print name_object.name
答案 1 :(得分:1)
Lukasz是对的,但只是你知道,除非你使用info.object.filet(id__in=a)
并且a是某种类型的列表,否则过滤id是没有意义的。如果您对单个id进行过滤,则首先应该使用objects.get(** kwargs),它将返回该特定的Info实例而不是QuerySet。