2015-01-01 6 views
1

를 쿼리 내 오류, 그리고 정말 내 문제와 유사한 아무것도 찾을 수 없습니다장고 ~ Q 여기

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

TypeError: bad operand type for unary ~: 'Q'

+1

에 대한 문서는 오류 메시지의 자세한 내용을 보여줄 수 있습니까? (이전 줄) – torm

+1

어떤 Django 버전을 사용하고 있습니까? – alecxe

+0

그게 이상 할거야,이게 작동합니다 – Anentropic

답변

2

당신이 Q들과 함께 무엇을하려고에 대한 대안이 될 것입니다 filter() + exclude() + get()를 사용 :

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

을뿐만 아니라 '&'뿐만 아니라 쉼표 ','대표와 장고 Q 오브젝트 당신 때문에 시도해 볼 수도 있습니다 :

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

는 완전한 레퍼런스

+0

당신이 말한 'Q 개체를 연결하는 문서는 &와 | 연산자 '. – Alasdair

+0

docs의 예제에서 Plz 고지 & 사용되지 않고 대신 쉼표가 사용되며 직접 sql로 변환하면 SQL로 변환됩니다. – Shark

+0

임 미안합니다. 감사합니다. – Shark