@@ -8,6 +8,162 @@ meta: Python code examples for the admin module within django.contrib of the Dja
88
99
1010# django.contrib.admin Examples
11+ The [ Django admin] ( https://docs.djangoproject.com/en/2.2/ref/contrib/admin/ )
12+ is an automatically-generated user interface for [ Django models] ( /django-orm.html ) .
13+ The admin interface can be heavily customized and the code examples below can
14+ help you understand how to implement some of the trickier parts of customization.
1115
1216
1317## Example 1 from heritagesites
18+ [ heritagesites] ( https://github.com/Michael-Cantley/heritagesites ) is a
19+ [ Django] ( /django.html ) -based web app with a [ MySQL] ( /mysql.html )
20+ backend that displays
21+ [ UNESCO heritage sites] ( https://whc.unesco.org/en/list/ ) . The project
22+ code is open source under the
23+ [ MIT license] ( https://github.com/Michael-Cantley/heritagesites/blob/master/LICENSE ) .
24+
25+ [ ** heritagesites/heritagesites/admin.py** ] ( https://github.com/Michael-Cantley/heritagesites/blob/master/heritagesites/admin.py )
26+
27+ ``` python
28+ # admin.py
29+ ~~ from django.contrib import admin
30+
31+ import heritagesites.models as models
32+
33+
34+ @admin.register (models.CountryArea)
35+ class CountryAreaAdmin (admin .ModelAdmin ):
36+ fields = [
37+ ' country_area_name' ,
38+ # (
39+ # 'region',
40+ # 'sub_region',
41+ # 'intermediate_region'
42+ # ),
43+ ' iso_alpha3_code' ,
44+ ' m49_code' ,
45+ ' location' ,
46+ ' dev_status'
47+ ]
48+
49+ list_display = [
50+ ' country_area_name' ,
51+ # 'region',
52+ # 'sub_region',
53+ # 'intermediate_region',
54+ ' location' ,
55+ ' iso_alpha3_code' ,
56+ ' m49_code' ,
57+ ' dev_status'
58+ ]
59+
60+ list_filter = [' location' , ' dev_status' ]
61+
62+ # list_filter = ['location', 'dev_status'] list_filter = ['region', 'sub_region', 'intermediate_region', 'dev_status']
63+
64+ # admin.site.register(models.CountryArea)
65+
66+
67+ @admin.register (models.DevStatus)
68+ class DevStatusAdmin (admin .ModelAdmin ):
69+ fields = [' dev_status_name' ]
70+ list_display = [' dev_status_name' ]
71+ ordering = [' dev_status_name' ]
72+
73+ # admin.site.register(models.DevStatus)
74+
75+
76+ @admin.register (models.HeritageSite)
77+ class HeritageSiteAdmin (admin .ModelAdmin ):
78+ fieldsets = (
79+ (None , {
80+ ' fields' : (
81+ ' site_name' ,
82+ ' heritage_site_category' ,
83+ ' description' ,
84+ ' justification' ,
85+ ' date_inscribed'
86+ )
87+ }),
88+ (' Location and Area' , {
89+ ' fields' : [
90+ (
91+ ' longitude' ,
92+ ' latitude'
93+ ),
94+ ' area_hectares' ,
95+ ' transboundary'
96+ ]
97+ })
98+ )
99+
100+ list_display = (
101+ ' site_name' ,
102+ ' date_inscribed' ,
103+ ' area_hectares' ,
104+ ' heritage_site_category' ,
105+ ' country_area_display'
106+ )
107+
108+ list_filter = (
109+ ' heritage_site_category' ,
110+ ' date_inscribed'
111+ )
112+
113+ # admin.site.register(models.HeritageSite)
114+
115+
116+ @admin.register (models.HeritageSiteCategory)
117+ class HeritageSiteCategoryAdmin (admin .ModelAdmin ):
118+ fields = [' category_name' ]
119+ list_display = [' category_name' ]
120+ ordering = [' category_name' ]
121+
122+ # admin.site.register(models.HeritageSiteCategory)
123+
124+
125+ @admin.register (models.IntermediateRegion)
126+ class IntermediateRegionAdmin (admin .ModelAdmin ):
127+ fields = [' intermediate_region_name' , ' sub_region' ]
128+ list_display = [' intermediate_region_name' , ' sub_region' ]
129+ ordering = [' intermediate_region_name' ]
130+
131+ # admin.site.register(models.IntermediateRegion)
132+
133+
134+ @admin.register (models.Region)
135+ class RegionAdmin (admin .ModelAdmin ):
136+ fields = [' region_name' , ' planet' ]
137+ list_display = [' region_name' , ' planet' ]
138+ ordering = [' region_name' , ' planet' ]
139+
140+ # admin.site.register(models.Region)
141+
142+
143+ @admin.register (models.SubRegion)
144+ class SubRegionAdmin (admin .ModelAdmin ):
145+ fields = [' sub_region_name' , ' region' ]
146+ list_display = [' sub_region_name' , ' region' ]
147+ ordering = [' sub_region_name' ]
148+
149+ # admin.site.register(models.SubRegion)
150+
151+ @admin.register (models.Planet)
152+ class Planet (admin .ModelAdmin ):
153+ """
154+ New class added as a result of Mtg 5 database refactoring.
155+ """
156+ fields = [' planet_name' , ' unsd_name' ]
157+ list_display = [' planet_name' , ' unsd_name' ]
158+ ordering = [' planet_name' , ' unsd_name' ]
159+
160+
161+ @admin.register (models.Location)
162+ class Location (admin .ModelAdmin ):
163+ """
164+ New class added as a result of Mtg 5 database refactoring.
165+ """
166+ fields = [' planet' , ' region' , ' sub_region' , ' intermediate_region' ]
167+ list_display = [' planet' , ' region' , ' sub_region' , ' intermediate_region' ]
168+ ordering = [' planet' , ' region' , ' sub_region' , ' intermediate_region' ]
169+ ```
0 commit comments