假设我有以下课程:
class Votable(models.Model):
name = ...
class Vote(models.Model):
options = models.ManyToManyField(Votable, related_name='+')
choosen = models.ForeignKey(Votable)
注意:
Vote.options
正好有2件
Vote.choosen
是两个选项之一
如何创建搜索Vote.options
和Vote.choosen
的确切2项的查询?
我尝试Vote.objects.get(options=[1,2], choosen=1)
,但它返回:
TypeError: int() argument must be a string or a number, not 'list'
答案 0 :(得分:3)
您必须链接过滤器才能获得同时具有选项1和2的投票对象。
Vote.objects.filter(options=1).filter(options=2).get(choosen=1)
如果您想要具有options
1或2的投票对象,则使用__in
语法:
Vote.objects.get(options__in=[1, 2], choosen=1)