2012-04-13 2 views
0

User 클래스를 사용하여 django 앱을 만들고 있습니다 (django.contrib.auth.models).Django/ManyToMany 필드의 사용자 액세스

사용자에게 M2M 관계인 그룹이라는 모델을 정의했습니다. 주어진 사용자가 속한 그룹을 검색하는 데 어려움이 있습니다. 나는 사용자가 그룹의 회원 분야에 속해있는 그룹을 검색하고 싶은

class group(models.Model): 
    user = models.ForeignKey(User,related_name = 'owner') # the owner 
    name = models.CharField(max_length=100) # name of the group 

    # members of the group 
    members = models.ManyToManyField(User,related_name = 'member') 

    def __unicode__(self): 
     return str(self.name) 

:

다음은 그룹 정의합니다.

다음은 실패한 명령입니다. 특정 사용자가 속한 그룹을 검색하려고합니다. 이유는 확실하지 않습니다. 알려 주실 수 있습니까?

'User' object has no attribute 'group_set' 

잘못 여기에 무엇 :

user_groups = user.group_set.all() 

내가 오류입니다 (userUser 인스턴스입니다)?

솔루션은

나는 결국 해결책을 발견했다. 나는 related_name와 쿼리했습니다, 그래서 여기있다 :

groups_member = user.member.all() 

답변

4

다 대다 관계가 members 속성을 통해이기 때문에,이 속성은 related_name 속성이 올바른 구문은 다음과 같습니다

user_groups = user.member.all() 

(관련 이름 속성이 없다면, 그것은 user_groups = user.members_set.all() 것) 그리고 역의 관계는 다음과 같습니다

group_users = group.members.all() 
+0

작품 - 고마워요! – mikolune

+2

좋습니다. 답을 해결책으로 확인하십시오. – danihp

관련 문제