내가 뭘 하려는지 명확하게하기 위해 모델을 단순화했습니다.Django : Many to Many 다른 객체를 통해 많은 객체에 액세스하기 Many to Many 관계
(응용 프로그램 팀에서 models.py)
from django.db import models
from django.contrib.auth.models import User
import datetime
class Team(models.Model):
users = models.ManyToManyField(User)
team_title = models.CharField(max_length=200)
team_description = models.CharField(max_length=200)
def __unicode__(self):
return self.team_title
(응용 프로그램 문서에서 models.py)
from django.db import models
import datetime
class Document(models.Model):
teams = models.ManyToManyField("Teams.Team", blank=True)
document_title = models.CharField(max_length=200)
document_description = models.TextField()
def __unicode__(self):
return self.document_title
내가과 관련된 한 사용자의 목록을 받고있다 달성하고자하는 먼저 문서와 관련된 모든 팀을 가져 와서 모든 사용자가 해당 팀과 연결되도록하여 문서를 만듭니다.
나의 시도는 지금까지
(응용 프로그램 문서에서 view.py) 같은 것을 갔다
from django.contrib.auth.models import User
from Documents.models import *
from Teams.models import *
def docUsers(request, doc_id):
current_document = Documents.objects.get(pk = doc_id)
associated_users = current_document.teams.all().users
....
오류 : '검색어 세트'목적이없는 속성 '사용자'
associated_users = current_document.items.all().users.all()
있다
오류 : 'QuerySet'객체에는 'users'속성이 없습니다
associated_users = current_document.items.users.all()
오류 : 'ManyRelatedManager'개체가 어떤 속성을 '사용자'가
내가 이것에 대해 잘못된 길을 가고없는 건가요있다?
나는 아직도 혼란 스럽다. 팀 모델과 문서 모델과의 연관성은 문서에서 팀까지이며 다른 방향으로 진행되는 것은 아닙니다. (가장 논리적 인 방법은 아니지만 모델 구조를 변경할 수는 없습니다.) team__ 문서를 필터링하려면 어떻게해야합니까? – Finglish
@agf 1. 아니오, 필터 표현식 안에 실제 모델 이름을 사용합니다. 2. 아니요, =를 사용하여 M2M/FK 관계 내에서 단일 요소를 조회합니다. [관계에 관련된 조회] (https://docs.djangoproject.com/en/1.3/topics/db/queries/#lookups-that-span-relationships)를 참조하십시오. –
@Finglish 당신은 양쪽에서 관계에 액세스 할 수 있습니다. 내가 agf에 준 링크를 참조하십시오. –