0

在模型中有很多领域,

从 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 

查询应该如何获取名称

谢谢..

4

2 回答 2

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
于 2010-04-01T11:19:22.073 回答
1

Lukasz 是对的,但正如您所知,过滤 id 是没有意义的,除非您使用info.object.filet(id__in=a)并且 a 是某种列表。如果您过滤单个 id,您应该首先使用 objects.get(**kwargs),它会返回特定的 Info 实例而不是 QuerySet。

于 2010-04-01T17:12:08.900 回答