Python 如何向Django Admin注册自定义表单

Python 如何向Django Admin注册自定义表单,python,django,django-forms,django-admin,Python,Django,Django Forms,Django Admin,在admin_forms.py中,我编写了以下代码: class AdminForm(forms.Form): category = forms.ModelChoiceField(queryset=Category.objects.all()) question = forms.CharField(widget=forms.Textarea) q_active = forms.BooleanField(initial=True) option = forms.Ch

admin_forms.py中,我编写了以下代码:

class AdminForm(forms.Form):
    category = forms.ModelChoiceField(queryset=Category.objects.all())
    question = forms.CharField(widget=forms.Textarea)
    q_active = forms.BooleanField(initial=True)
    option = forms.CharField()
    option_active = forms.BooleanField(initial=True)
我想让它注册到Django Admin,所以在我的Admin.py中,我写了

from api.admin_forms import AdminForm
class EntryAdmin(admin.ModelAdmin):
    add_form = AdminForm
    fieldsets = (
        ('Category', {
            'fields': 'category'}),
        ('Question', {'fields': ('question', 'q_active')}),
        ('Answer Option', {'fields': ('option', 'option_active')}),
        ('Selected Answer', {'fields': ('user_role', 'answer')}),
    )
admin.site.register(EntryAdmin)
当然,这不是我们可以让它工作的方式。救命啊

您应该设置而不是
添加表单

class EntryAdmin(admin.ModelAdmin):
    form = AdminForm
    ...
注册模型管理员时,必须将模型作为第一个参数提供:

admin.site.register(Entry, EntryAdmin)

ModelAdmin
没有属性
add\u form
,因此设置它无效。有一个
add\u form
属性,用于添加新用户。

谢谢。我试过你的建议,但没用。TypeError:“RenameBaseModelAdminMethods”对象不可编辑。这是另一个问题。您调用的
admin.site.register()
不正确。请看我的最新答案。谢谢。我想我不能正确地提出我的问题。我打算使用单个视图来添加/编辑我的模型,并希望使用上述方法来实现这一点,但没有为我的AdminForm定义模型。然而,我了解到,我们无法使用当前策略来实现这一点。我使用django Tablerinline来实现这一点。