2012-04-13 22 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_groups = user.group_set.all() 

userUserインスタンスである)私が手にエラーがある:

'User' object has no attribute 'group_set' 

ここで間違っているのですか?

SOLUTION

私は最終的に解決策を見つけました。私はrelated_nameでクエリをしなければならなかったので、ここにある:

groups_member = user.member.all() 

答えて

4

多対多の関係がmembersプロパティを介してであり、このプロパティはrelated_name属性を持っているので、正しい構文は次のとおりです。

user_groups = user.member.all() 

(関連name属性がなければ、それはuser_groups = user.members_set.all()だろう)とは逆の関係は次のとおりです。

group_users = group.members.all() 
+0

作品 - ありがとう! – mikolune

+2

[OK]をクリックします。 – danihp

関連する問題