1
내 (간체) 모델은 다음과 같습니다 django 효율적인 방법으로 두 개의 쿼리를 결합하거나 하나의 복합체를 만들 수 있습니까?
class Story(models.Model):
wikiedit = models.BooleanField(default=False)
writers = models.ManyToManyField(User,null=True,blank=True)
class Writer(models.Model):
user = models.OneToOneField(User)
지금 내가 만나는 모든 이야기를 포함하는 검색어 세트를 구축을 위해 노력하고있다 :
:
wikiedit = True or user in writers
이
그래서 내보기 안에 내가 두 개의 쿼리를 만들
wikistories = Story.objects.filter(wikiedit=True)
writerstories = request.user.objects.story_set.filter
하지만 가능하면이 데이터베이스를 한 번만 치면됩니다. 나는 그것이 더 효율적 일 것 같아요.
Story.objects.filter(writers__contains=request.user) #but this is a TypeError
어쩌면이 개 검색어 세트를 만들어 다음 목록에 가입 할 단지 더 효율적이지만 하나에 그것을 가지고 싶어요 : 나는 운영자의는 의미에서이 M2M 관계에서 지원되는 경우 찾을 수 없습니다.
실마리가 있습니까? 고마워!
Story.objects.filter(writers=request.user)
을 그리고 당신은 or
쿼리를 할 Q
개체를 사용할 수 있습니다 :
좋은! 그것은 작동하지만 너무 기본적인 질문 일지 모르지만 나는 몇 시간 동안이 정보를 찾을 수 없었습니다! 추가 판독기에 대한 참고로 여기에는 반복 결과가 포함될 수 있으므로 제외 될 수 있습니다. 'Story.objects.filter (qwriters | qwiki & ~ qwriters)) '여기서 qwriters 및 qwiki는 해당 Q 객체입니다. 감사! – viridis