如何在Django中过滤关系项?

时间:2013-09-18 03:59:10

标签: django django-models django-managers

假设我有2个模特班。类别有一个名称和多个标签,标签有一个名称,可以是可见的。

编辑:可以说我有一个类别列表,对于每个类别,我只想显示有可见= True的标记,我该如何处理?

    class Category(models.Model):
         name = models.CharField(max_length=255, unique=True)
         tags = models.ManyToManyField(Tag)

    class Tag(models.Model):
         name = models.CharField(max_length=255, unique=True)
         visible = models.BooleanField(default=False)

1 个答案:

答案 0 :(得分:0)

这样的事情:

category_list = Category.objects.all() #Or you can filter according to your choice
for c in category_list:
  tagnames = c.tags.filter(visible=True).values("name")
  print c.name, tagnames