我不知道它是一个django错误还是一个功能,但我对MySQL有一个奇怪的ORM行为。基于列表的筛选器查询集,包括无
class Status(models.Model):
name = models.CharField(max_length = 50)
class Article(models.Model)
status = models.ForeignKey(status, blank = True, null=True)
filters = Q(status__in =[0, 1,2]) | Q(status=None)
items = Article.objects.filter(filters)
这条返回的项目,但有些人比其他要求的状态[0,1,2,无]
看SQL查询:
的OR app_status.id IS NULL
部分似乎是原因。如果我将其更改为OR app_article.status_id IS NULL
它可以正常工作。
如何处理?
Thanx。
解决方法:设置我的ForeignKey的默认= 0使它不能来过滤无值,和status__in = [0,1,2]工程确定 – jujule 2010-04-26 23:10:06