我有一个文章模型,它与模型标签共享ManyToMany关系,
我想检索有多个标签的文章
对于一个标签:
In [162]: articles = Article.objects.filter(tags__name="python")
Out[162]: <QuerySet [<Tag: python>, <Tag: django>至于多个标签,我试过了
In [168]: articles = Article.objects.filter(tags__name="python", tags__name="django", tags__name="queryset")它报告了错误:
SyntaxError: keyword argument repeated怎样才能得到有指定标签的文章呢?
发布于 2018-07-26 19:27:04
您可以使用__in查找:
articles = Article.objects.filter(tags__name__in=["python", "django", "queryset"])发布于 2018-07-26 19:30:51
使用Q对象:
from django.db.models import Q
Article.objects.filter(Q(tags='python') | Q(tags='django') | Q(tags='queryset'))这大致可以翻译为:
"SELECT * FROM Article WHERE tags='python' OR tags='django' OR tags='queryset'"https://stackoverflow.com/questions/51537683
复制相似问题