简体   繁体   English

想要在Admin中添加Form表单以及django中的Model字段

[英]Want to add a Form field in Admin along with Model fields in django

I want to add 3 fields in my Admin.py page. 我想在Admin.py页面中添加3个字段。 out of which two fields are from Model.py and one field is from form.py. 其中两个字段来自Model.py,一个字段来自form.py. But somehow when i add these fields to admin.site.register function, an error pops up saying 'userlist' is not recognizable. 但不知何故,当我将这些字段添加到admin.site.register函数时,会弹出一个错误,提示'userlist'无法识别。 Below is my code : 以下是我的代码:

Models.py Models.py

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

Form.py 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 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)

Please advise whats wrong with the code. 请告知代码有什么问题。

FormFields are class members. FormFields是类成员。 You can not declare FormFields during the initialisation of the Form. 在初始化表单期间,您不能声明FormFields。

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

    class Meta:
        model = About
        '__all__'

See the docs about ModelForms: https://docs.djangoproject.com/en/1.10/topics/forms/modelforms/ 请参阅有关ModelForms的文档: https ://docs.djangoproject.com/en/1.10/topics/forms/modelforms/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM