Customising CreateView
, EditView
and DeleteView
¶
NOTE: modeladmin
only provides ‘create’, ‘edit’ and ‘delete’
functionality for non page type models (i.e. models that do not extend
wagtailcore.models.Page
). If your model is a ‘page type’ model, customising
any of the following will not have any effect:
Changing which fields appear in CreateView
& EditView
¶
edit_handler
can be used on any Django models.Model class, just like it
can be used for Page
models or other models registered as Snippets
in
Wagtail.
To change the way your MyPageModel
is displayed in the CreateView and the
EditView, simply define an edit_handler
or panels
attribute on your
model class.
class MyPageModel(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
address = models.TextField()
panels = [
MultiFieldPanel([
FieldRowPanel([
FieldPanel('first_name', classname='fn'),
FieldPanel('last_name', classname='ln'),
]),
FieldPanel('address', classname='custom1',))
]
Or alternatively:
class MyPageModel(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
address = models.TextField()
custom_panels = [
MultiFieldPanel([
FieldRowPanel([
FieldPanel('first_name', classname='fn'),
FieldPanel('last_name', classname='ln'),
]),
FieldPanel('address', classname='custom1',))
]
edit_handler = ObjectList(custom_panels)
# or
edit_handler = TabbedInterface([ObjectList(custom_panels), ObjectList(...)])
ModelAdmin.form_view_extra_css
¶
Expected value: A list of path names of additional stylesheets to be added
to CreateView
and EditView
See the following part of the docs to find out more: Adding additional stylesheets and/or JavaScript
ModelAdmin.form_view_extra_js
¶
Expected value: A list of path names of additional js files to be added
to CreateView
and EditView
See the following part of the docs to find out more: Adding additional stylesheets and/or JavaScript
ModelAdmin.create_template_name
¶
Expected value: The path to a custom template to use for CreateView
See the following part of the docs to find out more: Overriding templates
ModelAdmin.create_view_class
¶
Expected value: A custom view
class to replace
modeladmin.views.CreateView
See the following part of the docs to find out more: Overriding views
ModelAdmin.edit_template_name
¶
Expected value: The path to a custom template to use for EditView
See the following part of the docs to find out more: Overriding templates
ModelAdmin.edit_view_class
¶
Expected value: A custom view
class to replace
modeladmin.views.EditView
See the following part of the docs to find out more: Overriding views
ModelAdmin.delete_template_name
¶
Expected value: The path to a custom template to use for DeleteView
See the following part of the docs to find out more: Overriding templates
ModelAdmin.delete_view_class
¶
Expected value: A custom view
class to replace
modeladmin.views.DeleteView
See the following part of the docs to find out more: Overriding views
ModelAdmin.form_fields_exclude
¶
Expected value: A list or tuple of fields names
When using CreateView or EditView to create or update model instances, this value will be passed to the edit form, so that any named fields will be excluded from the form. This is particularly useful when registering ModelAdmin classes for models from third-party apps, where defining panel configurations on the Model itself is more complicated.