2017-02-23 48 views
1

我想在Admin.py頁面中添加3個字段。其中兩個字段來自Model.py,一個字段來自form.py。但不知何故,當我將這些字段添加到admin.site.register函數時,會彈出一個錯誤消息,說'用戶列表'不可識別。下面是我的代碼:想在Admin中添加一個Form字段以及django中的Model字段

Models.py

class About(models.Model): 
    about_author = models.TextField() 
    pic = models.FileField(upload_to = '', default = 'static/defaul.jpg') 

Form.py

class PostAuthorDetails(forms.ModelForm): 
    def __init__(self,*args,**kwargs): 
     super(PostAuthorDetails,self).__init__(*args,**kwargs) 
     self.fields['userlist'] = forms.ModelChoiceField(queryset=User.objects.all()) 
    class Meta: 
     model = About 
     fields = '__all__' 

Admin.py

class PostAuthorDetailsAdmin(admin.ModelAdmin): 
    form = PostAuthorDetails 

    def get_fieldsets(self,*args,**kwargs): 
     return((None,{'fields':('about_author','pic','userlist'),}),) 

admin.site.register(About,PostAuthorDetailsAdmin) 

請告知什麼是錯的代碼。

回答

0

FormFields是類成員。在表單初始化期間,您不能聲明FormFields。

class PostAuthorDetails(forms.ModelForm): 
    userlist = forms.ModelChoiceField(queryset=User.objects.all()) 

    class Meta: 
     model = About 
     '__all__' 

查看關於ModelForms文檔:https://docs.djangoproject.com/en/1.10/topics/forms/modelforms/

+0

由於最大。它解決了我的問題:)。 – harry

+0

我很高興我的回答幫助你。不要忘記註冊並將其標記爲正確的答案。 :) – Max

相關問題