Make the admin base_model setting optional.

It can be detected using get_base_polymorphic_model()
This commit is contained in:
Diederik van der Boor
2017-09-30 16:35:02 +02:00
parent 19497960c7
commit cf0cb2478f
5 changed files with 23 additions and 17 deletions
+4 -4
View File
@@ -63,7 +63,7 @@ The models are taken from :ref:`advanced-features`.
class ModelAChildAdmin(PolymorphicChildModelAdmin):
""" Base admin class for all child models """
base_model = ModelA
base_model = ModelA # Optional, explicitly set here.
# By using these `base_...` attributes instead of the regular ModelAdmin `form` and `fieldsets`,
# the additional fields of the child models are automatically added to the admin form.
@@ -75,13 +75,13 @@ The models are taken from :ref:`advanced-features`.
@admin.register(ModelB)
class ModelBAdmin(ModelAChildAdmin):
base_model = ModelB
base_model = ModelB # Explicitly set here!
# define custom features here
@admin.register(ModelC)
class ModelCAdmin(ModelBAdmin):
base_model = ModelC
base_model = ModelC # Explicitly set here!
show_in_index = True # makes child model admin visible in main admin site
# define custom features here
@@ -89,7 +89,7 @@ The models are taken from :ref:`advanced-features`.
@admin.register(ModelA)
class ModelAParentAdmin(PolymorphicParentModelAdmin):
""" The parent model admin """
base_model = ModelA
base_model = ModelA # Optional, explicitly set here.
child_models = (ModelB, ModelC)
list_filter = (PolymorphicChildModelFilter,) # This is optional.
+2 -2
View File
@@ -69,7 +69,7 @@ The admin :ref:`admin example <admin-example>` becomes:
class ModelAChildAdmin(PolymorphicChildModelAdmin, VersionAdmin):
base_model = ModelA
base_model = ModelA # optional, explicitly set here.
base_form = ...
base_fieldsets = (
...
@@ -83,7 +83,7 @@ The admin :ref:`admin example <admin-example>` becomes:
class ModelAParentAdmin(VersionAdmin, PolymorphicParentModelAdmin):
base_model = ModelA
base_model = ModelA # optional, explicitly set here.
child_models = (
(ModelB, ModelBAdmin),
(ModelC, ModelCAdmin),