Skip to content

Commit 930a18c

Browse files
committed
add django admin example
1 parent 354b006 commit 930a18c

File tree

1 file changed

+156
-0
lines changed

1 file changed

+156
-0
lines changed

content/pages/examples/django/django-contrib-admin.markdown

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)