我在查询集中使用 __in 有一个奇怪的问题(与 Django 1.4 和 SQLite 一起使用)。
我有一个带有字段的模型:
city=somecity
activities=[u'one',u'two',u'three']
activity=one
现在
city = request.user.account.city
activities = request.user.account.activities
queryset = profile_model._default_manager.filter(city__exact=city,activity__in=activities)
不起作用,但是如果我将其更改为
city = request.user.account.city
activities = request.user.account.activities
queryset = profile_model._default_manager.filter(city__exact=city,activity__in=[u'one',u'three'])
那么就可以了。我获得活动的方式与获得城市的方式相同,所以这应该不是问题。我在其他查询集中使用类似的东西
activities__contains=activity
但是在这个查询集中我正在搜索“活动”,如果我在这个查询集中做同样的事情,它会返回错误,因为没有这样的字段(在这种情况下是“一个”)。
我在尝试
activity__in=list(activities)
但它也不起作用。
如果我把它放到模板中:
{% if activity in activities %}
yes
{% else %}
no
{% endif %}
它工作没有问题。
知道为什么吗?谢谢!