取消 settings.py 中 INSTALLED_APPS 中 admin 註釋
'django.contrib.admin',
html
使用south管理數據庫python
python manage.py schemamigration polls --auto python manage.py migrate polls
設置 mysite/urls.py
數據庫
from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', ... url(r'^admin/', include(admin.site.urls)),
啓動服務器
python manage.py runserver
訪問地址 http://127.0.0.1:8000/admin/django
增長 polls/admin.py服務器
from django.contrib import admin from polls.models import Poll admin.site.register(Poll)
定製管理界面(更改順序)app
a. 定義一個ModelAdmin類對象 b. 把該對象做爲註冊的第2個參數 class PollAdmin(admin.ModelAdmin): fields = ['pub_date', 'question'] admin.site.register(Poll, PollAdmin)
定製管理界面(分組)python2.7
class PollAdmin(admin.ModelAdmin): fieldsets = [ (None, {'fields': ['question']}), ('Date information', {'fields': ['pub_date']}), ]
定製管理界面(摺疊)url
class PollAdmin(admin.ModelAdmin): ... ('日期信息', {'fields': ['pub_date'], 'classes': ['collapse']}),
內聯方式code
from django.contrib import admin from polls.models import Choice, Poll class ChoiceInline(admin.StackedInline): model = Choice extra = 3 class PollAdmin(admin.ModelAdmin): fieldsets = [ (None, {'fields': ['question']}), ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}), ] inlines = [ChoiceInline] admin.site.register(Poll, PollAdmin)
表格方式orm
class ChoiceInline(admin.TabularInline):
普通顯示多列
class PollAdmin(admin.ModelAdmin): # ... list_display = ('question', 'pub_date', 'was_published_recently')
方法設置屬性
was_published_recently.admin_order_field = 'pub_date' was_published_recently.boolean = True was_published_recently.short_description = '是否最近發佈'
增長一個過濾器
list_filter = ['pub_date']
增長搜索欄
search_fields = ['question']
日期分層過濾
date_hierarchy = 'pub_date'
完整的 PollAdmin 類
class PollAdmin(admin.ModelAdmin): fieldsets = [ (None, {'fields': ['question']}), ('日期信息', {'fields': ['pub_date'], 'classes': ['collapse']}), ] inlines = [ChoiceInline] list_display = ('question', 'pub_date', 'was_published_recently') list_filter = ['pub_date'] search_fields = ['question'] date_hierarchy = 'pub_date'
1.1 django 的源文件在哪裏?
python -c " import sys sys.path = sys.path[1:] import django print(django.__path__)"
好比個人 virtualenvs 環境的django 的輸出結果就是:
~/.virtualenvs/djtest/local/lib/python2.7/site-packages/django
1.2 創建一個項目模版目錄並拷貝模版
在項目目錄創建一個模版路徑 templates,如今路徑結果:
~/djtest/mysite |---mysite |---polls | |---migrations |---templates | |---admin
從~/.virtualenvs/djtest/local/lib/python2.7/site-packages/django/contrib/admin/templates/admin
cp base_site.html ~/djtest/mysite/templates/admin/
1.3 更改 settings.py,增長模版的搜索路徑
TEMPLATE_DIRS = ( '/home/***/djtest/mysite/templates/' )