Django~Q查询

时间:2015-01-01 21:44:47

标签: django django-models django-queryset django-q

这是我的错误,我真的找不到与我的问题类似的东西:

from django.db.models import Q    
_entry = Entry.objects.get(Q(slug=slug, author=self.author) & ~Q(id=self.id))
  

TypeError:一元〜:' Q'

的坏操作数类型

2 个答案:

答案 0 :(得分:2)

您尝试使用Q时的替代方法是使用filter() + exclude() + get()

_entry = Entry.objects.filter(slug=slug, author=self.author).exclude(id=self.id).get()

答案 1 :(得分:0)

不仅仅是'&'还有逗号','在django Q对象中表示AND,因此您也可以尝试:

from django.db.models import Q    
_entry = Entry.objects.get(Q(slug=slug), Q(author=self.author) , ~Q(id=self.id))

虽然我无法重新创建你得到的错误。另外请确保slug,self.author和self.id具有适当类型的数据以进入相应的字段。

Here是完整参考文档