2011-07-19 7 views
2
class Message(models.Model): 

    date = models.DateField() 
    user = models.ForeignKey(UserEx) 
    groups = models.ManyToManyField(Group) 
    main_category = models.ForeignKey(MainCategories) 
    sub_category = models.ForeignKey(SubCategories) 

いくつかのフィールドを動的に塗りたい。だから、私はそれについていくつか質問があります。管理パネルでダイナミックデータを操作するにはどうすればよいですか?

  1. このフィールドへのアクセス方法を教えてください。明らかに、 モデルのデフォルトフィールドは動的データでは機能しません(デフォルトフィールドを作成しようとしました - エラーも結果もありません)。
  2. グループをフィルタリングする方法は?私のユーザーはグループと同じフィールドを持っているので、そのグループのメッセージのみを編集して表示することができます。

よく、最後の1つの質問 - 自分の管理パネルを作成する方が簡単でしょうか?しかし、管理パネルで、ここで本当に快適なものを並べ替えて表示することの実現を考えることは、本当に恐ろしいことです。

答えて

3

あなたはのModelFormをオーバーライドしていることを実行します。

class MessageAdminForm(forms.ModelForm): 
    def __init__(self, *arg, **kwargs): 
     super(MessageAdminForm, self).__init__(*args, **kwargs) 

     # set initial values this way 
     self.initial['user'] = User.objects.get(username='bob') 

     # set choices this way 
     self.fields['groups'].choices = [(g.id, g) for g in Groups.objects.all()] 

class MessageAdmin(admin.ModelAdmin): 
    form = MessageAdminForm 
    # other stuff here 
関連する問題