홈>
다음 모델이 있습니다 :
class Group(models.Model):
member = models.ManyToManyField(Player, through='GroupMember')
name = models.CharField(max_length=20, unique=True)
join_password = models.CharField(max_length=20)
date_created = datetime.datetime.now()
def __unicode__(self):
return str(self.name)
class GroupMember(models.Model):
member = models.ForeignKey(Player)
group = models.ForeignKey(Group)
rating = models.IntegerField(default=1500)
played = models.IntegerField(default=0)
wins = models.IntegerField(default=0)
losses = models.IntegerField(default=0)
experience = models.IntegerField(default=0)
admin = models.BooleanField(default=0)
보시다시피 그룹은 플레이어 인 멤버로 구성되어 있습니다. 내가하고 싶은 것은이 두 선수가 모두 포함 된 그룹을 필터링 할 수 있기를 원하는 두 명의 선수가 주어진다는 것입니다. 그러나 이런 유형의 쿼리를 수행하는 방법을 잘 모르겠습니다.
-
답변 # 1
-
답변 # 2
가장 쉬운 해결책은 다음과 같습니다.
p1 = Player.objects.get(id=1) p2 = Player.objects.get(id=2) groups = Group.objects.filter(member=p1).filter(member=p2)
다음과 같이 __in 필터를 사용할 수 없습니다. 두 플레이어가 모두 포함되지 않은 OR 및 리턴 그룹이 발생하기 때문입니다.
Group.objects.filter(member__in=[1, 2])
-
답변 # 3
나를 위해
__in
작동하지 않았다. 복잡한 Q 조회를 사용했습니다. 완벽하게 작동하며or
할 수 있습니다 필터 조건. 다음과 같이 사용하십시오 :from django.db.models import Q p1 = Player.objects.get(name='Player1') p2 = Player.objects.get(name='Player2') querySet = Group.objects.filter(Q(member=p1) | Q(member=p2))
관련 자료
- r - sapply의 논리적 결과에서 TRUE 값을 필터링하는 방법은 무엇입니까?
- reporting services - 매개 변수를 필터로 사용 - 여러 값이 작동하지 않음
- python - 오름차순 값을 기준으로 목록을 필터링하는 방법은 무엇입니까?
- mysql - C ++ XDevAPI 다중 values
- DJANGO - django - 모델의 기본 필터
- join - 다른 데이터 프레임의 열 값을 기반으로 pyspark 데이터 프레임에서 행을 필터링하는 방법
- sql server - T-SQL 여러 기준으로 필터링하지만 반환되는 항목의 우선 순위를 지정하는 방법은 무엇입니까?
- python - 인수에 대한 여러 값
- java - 여러 열이있는 단일 행으로 Excel에서 값 읽기
- SQL 여러 행의 값을 기반으로 행을 선택하는 방법
- sql - 여러 열로 레코드 필터링
- python - 두 번째 rdd의 값에 따라 rdd 필터링
- database design - 종속 정보의 ID 값을 참조하기위한 하나의 필드 대 여러 필드
- r - 여러 변수가있는 선형 회귀 모델에서 오류 발생
- distributed system - 단일 실행에서 여러 값을 허용 할 수 있습니까?
- r - 필터에 따라 값 이름 바꾸기
- 선택을 사용하여 Java 클래스에서 여러 값의 유효성을 검사하는 방법은 무엇입니까?
- node.js - 단일 쿠키 키에 여러 값을 저장하는 방법
- session storage - 자바 스크립트 - 여러 선택 상자에서 값 대신 텍스트 가져 오기
- python - 모델의 객체를 필터링하여 ForeignKey 사용자의 객체 만 표시하려면 어떻게해야합니까?
관련 질문
- python - Django에서 할당하는 외래 키 값
- python - DetailView를 통해 URL 경로를 작성하려고 시도하지만 html 페이지에서 중복 값을 얻습니다
- python - Djangocontribauth 뷰에서 앱 이름 사용
- python - Django KeyError의 원인을 파악할 수 없습니다
- python - 입력을 기반으로 계산되는 모델에 속성을 추가하는 방법은 무엇입니까?
- python - 삭제 된 django_migrations 테이블 다시 만들기
- python - sqlite에 이미지 저장 - 장고
- python - 개체를 제거한 후 미디어 파일 제거
- python - 날짜 열 Django로 평균하고 싶습니까?
- python - Django 관리 사이트에 모델의 기본 권한이 표시되지 않습니다
당신의
Player
모델은 다음과 같습니다 :이러한 쿼리를 실행할 수 있습니다 :
대략"이름이 'Player1'및 'Player2'와 일치하는 플레이어를 가진 모든 그룹을 찾습니다"
또는
player
를 가져올 수 있습니다 개별적으로 개체 :