这是我的错误,我真的找不到与我的问题类似的东西:
from django.db.models import Q
_entry = Entry.objects.get(Q(slug=slug, author=self.author) & ~Q(id=self.id))
TypeError:一元〜:' Q'
的坏操作数类型
答案 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是完整参考文档