2011-11-08 12 views
1

は、私は、次のDjangoのモデルを持っている:ジャンゴのManyToManyField関係

class opetest(models.Model): 
    name = models.CharField(max_length=200) 
    people = models.ManyToManyField(User, blank=True) 

このM2M関係は 'opetest_set' としてUserオブジェクトで利用可能です。 django admin 'User edit page'でこのm2m関係を編集するにはどうしたらいいですか?

答えて

1

Djangoのm2mを編集するには、InlineModelAdminを使用してください。 UserAdminあなたが最初Userの登録を解除する必要があり、あなた自身を使用するためには、次のように:

admin.site.unregister(User) 
admin.site.register(User, UserAdmin) 

Userインスタンスからopetestにアクセスできるようにするには:

class opetest(models.Model): 
    name = models.CharField(max_length=200) 
    people = models.ManyToManyField(User, blank=True, related_name='opetests') 

その後user.opetests.all()

+0

私はM2Mフィールドを宣言しましたopetestモデルでは拡張されますが、Userモデルは拡張されません。では、ユーザーモデルを使用してこのm2m関係にアクセスするにはどうすればよいですか? – baobee

+0

@baobeeが回答しました。 – DrTyrsa

+0

>>> django.contrib.auth.modelsからユーザー >>> A =ユーザー >>> a.opetests.all() トレースバック(最新の呼び出しの最後)をインポート: ファイル ""、1行目を、 in AttributeError: 'ManyRelatedObjectsDescriptor'オブジェクトに属性 'all'がありません これは機能しません。 – baobee