【发布时间】:2019-02-19 21:46:21
【问题描述】:
在我的 Django 应用程序中,我有以下两种事件模型,可以给定任意数量的标签。
class Tag(models.Model):
# ...
class Event(models.Model):
# ...
tags = models.ManyToManyField("Tag")
我还有一个页面,用户应该能够在其中选择多个标签,然后查看与该标签关联的所有事件。给定标签 ID 列表,我可以使用 Django ORM 获取与至少一个给定标签关联的(不同)事件列表吗?
如果没有,我也尝试使用以下原始 SQL 实现此目的
event.objects.raw("""
SELECT *
FROM app_name_event_tags t
WHERE t.tag_id IN %s
""", selected_tag_ids)
这样做有两个问题:
1) 返回的事件不会不同
2) 我的列表 selected_tag_ids 占位符的语法不正确
【问题讨论】: