2012-06-20 8 views
6

投稿の所有者がUserの外部キーであるブログ投稿のモデルがあります。このモデルでは、どのユーザーもブログ投稿を所有できます。私はそれを変更して、特定のグループのユーザー - 「Bloggers」と呼ぶユーザーのみがブログ投稿オブジェクトを所有できるように変更したいと思います。理想的には管理者にも表示されるはずです。つまり、ブログ管理者には、現在、「オーナー」のメニューにすべてのユーザーがリストされています。 Django 1.3ではどうしたらいいですか?このようなあなたのForeignKey定義でDjango、モデル外来キーでグループ別にフィルタをかける

答えて

12

使用limit_choices_to paramether:

author = models.ForeignKey("auth.User", limit_choices_to={'groups__name': "bloggers"}) 
+0

これは非常に便利ですがよろしくお願いします。しかし、自分の選択肢を1つではなく多くのグループに限定したいのであれば、どうしたらよいでしょうか?たとえば、「bloggers」グループまたは「viewers」グループのいずれかでユーザーを選択したいとします。 – jgmao

+3

シンプル。 author = models.ForeignKey( "auth.User"、limit_choices_to = {'groups__name__in':["bloggers"、 "viewers"]}) –

+0

パーフェクト!!!私はこれを数時間探してきました!! –

関連する問題