관련된 사람의 빈 세트의 모든 객체 가져 오기 :나는 두 가지 모델이있어
class Content(models.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField(db_index=True)
content_object = generic.GenericForeignKey()
show = models.BooleanField(default=False)
class Foo(models.Model):
rel = generic.GenericRelation(Content)
을 그리고 show==True
가 있거나 그 케이 (하나가 될 것이다) 관련 콘텐츠 객체의 모든 푸 방법을 얻으려면 관련된 객체가 전혀 없습니다.
Foo.objects.filter(Q(rel__show=True) | Q(rel__hasnone=True))
그러나 물론 장고에 hasnone
처럼 아무것도 없다 : 뭔가있다.
내가 수행 할 수있는 다른 방법이 있습니까 (불행히도 집계가 일반 관계에서 작동하지 않고 항목을 계산할 수 없음).
아래의 답을 보았습니다. 그러나 더 간단한 생각이 있습니다. 관련 세트를 반복하고 관련 레코드가있는 모든 개체를 목록에 추가합니다. 그런 다음 모델을 다시 반복하고 목록에있는 모든 레코드를 건너 뜁니다. 이것은 더 느리지 만, 파이썬과 Django ORM을 전적으로 사용하는 이점이 있습니다. –