我有这样的模特
Post (models.Model):
recommended = models.BooleanField (default=False)
当我从模型中获取所有对象时
posts = Post.objects.all()
posts.count() # show equals to 18
posts[0].recommended # equals to False
但是当我尝试按推荐标签过滤时,即使在模型中,我的总计数也等于0,它们都具有我在过滤器中请求的相同值
posts = Post.objects.filter(recommended=False)
posts.count() # show equals to 0
看起来这个字段中没有任何值,因为在我在模型
中创建此字段之前已经过了一些值答案 0 :(得分:0)
如果要获取具有False或NULL值的对象,可以这样做:
Post.objects.exclude(recommended=True)
虽然我建议通过发出UPDATE
查询来修复您的数据库,该查询会将所有NULL
值更改为False
(从django shell执行此操作):
Post.objects.filter(recommended__isnull=True).update(recommended=False)
将表更改为在列定义中包含NOT NULL
也是一件好事。