Update the example app to demonstrate the polymorphic admin
This really begs for a separate folder, but I leave that to a new commit for now.fix_request_path_info
parent
42d525a895
commit
a6d62ed630
|
|
@ -0,0 +1,63 @@
|
|||
from django.contrib import admin
|
||||
from polymorphic.admin import PolymorphicParentModelAdmin, PolymorphicChildModelAdmin
|
||||
from pexp.models import *
|
||||
|
||||
|
||||
class ProjectChildAdmin(PolymorphicChildModelAdmin):
|
||||
base_model = Project
|
||||
|
||||
class ProjectAdmin(PolymorphicParentModelAdmin):
|
||||
base_model = Project
|
||||
child_models = (
|
||||
(Project, ProjectChildAdmin),
|
||||
(ArtProject, ProjectChildAdmin),
|
||||
(ResearchProject, ProjectChildAdmin),
|
||||
)
|
||||
|
||||
admin.site.register(Project, ProjectAdmin)
|
||||
|
||||
|
||||
|
||||
class ModelAChildAdmin(PolymorphicChildModelAdmin):
|
||||
base_model = ModelA
|
||||
|
||||
class ModelAAdmin(PolymorphicParentModelAdmin):
|
||||
base_model = ModelA
|
||||
child_models = (
|
||||
(ModelA, ModelAChildAdmin),
|
||||
(ModelB, ModelAChildAdmin),
|
||||
(ModelC, ModelAChildAdmin),
|
||||
)
|
||||
|
||||
admin.site.register(ModelA, ModelAAdmin)
|
||||
|
||||
|
||||
if 'Model2A' in globals():
|
||||
class Model2AChildAdmin(PolymorphicChildModelAdmin):
|
||||
base_model = Model2A
|
||||
|
||||
class Model2AAdmin(PolymorphicParentModelAdmin):
|
||||
base_model = Model2A
|
||||
child_models = (
|
||||
(Model2A, Model2AChildAdmin),
|
||||
(Model2B, Model2AChildAdmin),
|
||||
(Model2C, Model2AChildAdmin),
|
||||
)
|
||||
|
||||
admin.site.register(Model2A, Model2AAdmin)
|
||||
|
||||
|
||||
if 'UUIDModelA' in globals():
|
||||
class UUIDModelAChildAdmin(PolymorphicChildModelAdmin):
|
||||
base_model = UUIDModelA
|
||||
|
||||
class UUIDModelAAdmin(PolymorphicParentModelAdmin):
|
||||
base_model = UUIDModelA
|
||||
child_models = (
|
||||
(UUIDModelA, UUIDModelAChildAdmin),
|
||||
(UUIDModelB, UUIDModelAChildAdmin),
|
||||
(UUIDModelC, UUIDModelAChildAdmin),
|
||||
)
|
||||
|
||||
admin.site.register(UUIDModelA, UUIDModelAAdmin)
|
||||
|
||||
15
settings.py
15
settings.py
|
|
@ -77,9 +77,12 @@ MIDDLEWARE_CLASSES = (
|
|||
'django.middleware.common.CommonMiddleware',
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
)
|
||||
|
||||
ROOT_URLCONF = ''
|
||||
ROOT_URLCONF = 'urls'
|
||||
STATIC_URL = '/static/'
|
||||
ADMIN_MEDIA_PREFIX = '/static/admin/' # 1.3 compatibility
|
||||
|
||||
TEMPLATE_DIRS = (
|
||||
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
|
||||
|
|
@ -88,10 +91,14 @@ TEMPLATE_DIRS = (
|
|||
)
|
||||
|
||||
INSTALLED_APPS = (
|
||||
#'django.contrib.auth',
|
||||
'django.contrib.auth',
|
||||
'django.contrib.admin',
|
||||
'django.contrib.contenttypes',
|
||||
#'django.contrib.sessions',
|
||||
'django.contrib.messages',
|
||||
'django.contrib.sessions',
|
||||
'django.contrib.staticfiles',
|
||||
|
||||
#'django.contrib.sites',
|
||||
'polymorphic', # only needed if you want to use polymorphic_dumpdata
|
||||
'polymorphic', # needed if you want to use the polymorphic admin
|
||||
'pexp', # this Django app is for testing and experimentation; not needed otherwise
|
||||
)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
from django.conf import settings
|
||||
from django.conf.urls.defaults import patterns, include, url
|
||||
from django.conf.urls.static import static
|
||||
from django.contrib import admin
|
||||
|
||||
admin.autodiscover()
|
||||
|
||||
urlpatterns = patterns('',
|
||||
url(r'^admin/', include(admin.site.urls)),
|
||||
)
|
||||
Loading…
Reference in New Issue