想在Admin中添加一个表单字段,同时在djang中添加模型字段吗

2024-04-26 13:12:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在Admin.py页面中添加3个字段。其中两个字段来自Model.py,一个字段来自form.py。但不知何故,当我将这些字段添加到admin.site.register函数时,会弹出一个错误,说“userlist”不可识别。下面是我的代码:

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__'

管理员

class PostAuthorDetailsAdmin(admin.ModelAdmin):
    form = PostAuthorDetails

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

admin.site.register(About,PostAuthorDetailsAdmin)

请告知代码有什么问题


Tags: pyselfformregisterfieldsmodeladminmodels
1条回答
网友
1楼 · 发布于 2024-04-26 13:12:41

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/

相关问题 更多 >