朋友们,我有以下模特。
class Event(models.Model):
user = models.ForeignKey(UserInfo, null=False)
event_category = models.ForeignKey(EventCategory, null=False)
event_type = EventTypeEnumField(max_length=10, blank=True, choices=EVENT_TYPE )
title = models.CharField(max_length=40)
description = models.CharField(max_length=160)
created = models.DateTimeField(auto_now_add=True
class Tags(models.Model):
event = models.ForeignKey(Event)
name = models.CharField(max_length=100, null=True, blank=True)
一个事件可以有多个标签,假设event1有标签'x','y','z',event2有'x','y'等等。现在如何过滤具有'x'的事件'y'。,进一步我们应该能够过滤更多的标签,而不仅仅是'x'和'y'。如何在django中为此编写查询?
答案 0 :(得分:1)
要返回给定标签名称列表的事件,请使用以下示例中的内容:
tags = ['x', 'y']
events = events = Event.objects.all()
for tag in tags:
events = events.filter(tags__name=tag)
答案 1 :(得分:0)
试试这个
Event.objects.filter(tags__name='x').filter(tags__name='y')