2011-07-19 35 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. 如何過濾羣組?我的用戶與組有相同的字段,所以我希望允許他僅編輯和顯示僅用於該組的消息。

那麼,最後一個問題 - 也許會更容易創建我自己的管理面板?但是在管理面板中考慮分類和顯示事物的實現真的很可怕,這真的很舒服。

回答

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