对于像这样的模型:
class Item(models.Model):
notes = models.TextField(blank=True)
....
我正在尝试为“notes”字段为非空的所有Items执行简单的查询集。没有在文档中提到这种功能,但通过对错误报告的评论,发现你实际上可以与大于:
进行比较items_with_notes = Item.objects.filter(notes__gt='')
这很有效,但感觉就像是黑客。 “大于”似乎应该用于数字比较,而不是用于检查文本字段是否为空。很惊讶没有找到类似的东西:
Item.objects.exclude(notes=blank)
我是否忽略了某些东西,或者是.filter(notes__gt ='')正确的方法吗?
答案 0 :(得分:27)
.exclude(notes=u'')
在此处阅读更多内容:django.db.models.query.QuerySet.exclude
答案 1 :(得分:1)
你也可以使用Q对象:
from django.db.models import Q
Item.objects.filter(~Q(notes=''))