【问题标题】:get model instance based on its m2m relation to a list of objects根据与对象列表的 m2m 关系获取模型实例
【发布时间】:2012-04-20 15:26:45
【问题描述】:

如果过滤器的模型实例应该是与给定标签列表相关的 m2m,如何获取它们?

class Tag(models.Model):                           
    name=models.CharField(max_length=20)
    details=models.TextField(blank=True)
    parenttag=models.ForeignKey('self',null=True,related_name="childtags")   

class  Filter(models.Model):
    tags=models.ManyToManyField(Tag, related_name='infilters')
    parenttag = models.ForeignKey(Tag, related_name = 'child_filters')

这一定是一个比较简单的问题,但我在谷歌上没有得到答案。

【问题讨论】:

    标签: django many-to-many django-queryset


    【解决方案1】:

    如果您有一个 Tags 的查询集,并且想要获取与它们相关的 Filter 对象,您可以使用 the in query lookup

    Filter.objects.filter(tags__id__in=tags.values_list('id'))
    

    【讨论】:

    • 这将返回与标签子集相关的所有过滤器对象,但我只想要那些提到所有标签的对象。这是怎么做的? @蒂米
    猜你喜欢
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-21
    • 2018-07-03
    • 1970-01-01
    • 2013-02-10
    相关资源
    最近更新 更多