2013-08-06 5 views
0

의 차이를 주석 I가 다음 모델 :장고 : 두 개의 필드

class P (models.Model): 
    title = models.CharField(max_length=100) 
    votes_up = models.ManyToManyField(User) 
    votes_down = models.ManyToManyField(User) 

P.objects.annotate(rating = Count(votes_up) - Count(votes_down)).order_by('-rating') 

같은 것을 할 수있는 방법이 있나요?

+0

당신이하고 싶은 일을 시도 했습니까? :) –

+0

예. "지원되지 않는 피연산자 유형은 - : '카운트'및 '카운트'"입니다. – averageman

답변

0

아니요. 당신은 자신의 집계 함수를 작성한 다음 주석에 사용합니다 (정말 나쁜 생각입니다). 또는 단순히 원시 SQL에 의존합니다.

개인적으로 저는이 경우를 비정규 화 카운터로 처리 할 것입니다.

0

투표를 나타내는 데 m2m 관계를 사용하는 이유는 무엇입니까? 어쩌면 그것을 정수 필드로 변경하십시오. 그런 다음 빼낸 금액을 반환하는 모델 방법을 사용할 수 있습니다. 그리고 아마도 대신 모델 방법에 주석을 달 수 있습니다.