How to register a Custom Form with Django Admin
10,495
You should set form
instead of add_form
.
class EntryAdmin(admin.ModelAdmin):
form = AdminForm
...
When you register your model admin, you must provide the model as the first argument:
admin.site.register(Entry, EntryAdmin)
ModelAdmin
does not have an attribute add_form
, so setting it has no effect. The UserAdmin
has an add_form
attribute, which is used when adding new users.
Author by
abdullah
Updated on June 09, 2022Comments
-
abdullah almost 2 years
In admin_forms.py I've written the following code:
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)
I want it get registered with Django Admin, so in my admin.py, I've written
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)
Definitely, this is not how we can make it work. help please!