2017-02-23 49 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

相关问题