2、django管理网站
該系列的博客都是按照這個(gè)教程上面的內(nèi)容整理總結(jié)出來的,主要是為了方便自己復(fù)習(xí)和鞏固的。http://www.kancloud.cn/wizardforcel/django-chinese-docs-18/98847。該教程確實(shí)不錯(cuò)。
1、啟動(dòng)上面章節(jié)的項(xiàng)目:
python manage.py runserver現(xiàn)在,打開一個(gè)瀏覽器并在本地域名上訪問 “/admin/” – 例如?http://127.0.0.1:8000/admin/?。你將看到管理員的登錄界面:
?
現(xiàn)在嘗試登錄進(jìn)去, 你將看到 Djaong 的管理索引頁:
?
2、使 poll 應(yīng)用的數(shù)據(jù)在管理網(wǎng)站中可編輯
只需要做一件事:我們需要告訴管理網(wǎng)站 Poll 對(duì)象要有一個(gè)管理界面。為此,我們?cè)谀愕?polls 目錄下創(chuàng)建一個(gè)名為 admin.py 的文件,并添加如下內(nèi)容:
from django.contrib import admin from polls.models import Poll admin.site.register(Poll)通過 admin.site.register(Poll) 注冊(cè)了 Poll 模型,Django 就能構(gòu)造一個(gè)默認(rèn)的 表單。通常情況下,你將要自定義管理表單的外觀和功能。這樣的話你就需要在注冊(cè)對(duì)象 時(shí)告訴 Django 對(duì)應(yīng)的配置。讓我們來看看如何在編輯表單上給字段重新排序。修改admin.py文件將 admin.site.register(Poll) 這行替換成:
class PollAdmin(admin.ModelAdmin):fields = ['pub_date', 'question']admin.site.register(Poll, PollAdmin)你將遵循這個(gè)模式 – 創(chuàng)建一個(gè)模型的管理對(duì)象,將它作為 admin.site.register() 方法的第二個(gè)參數(shù)傳入 – 當(dāng)你需要為一個(gè)對(duì)象做管理界面配置的時(shí)候。
3.剛才所說的有許多字段的表單,你可能想將表單中的字段分割成 fieldsets :
class PollAdmin(admin.ModelAdmin):fieldsets = [(None, {'fields': ['question']}),('Date information', {'fields': ['pub_date']}),]admin.site.register(Poll, PollAdmin)4.添加關(guān)聯(lián)對(duì)象?
現(xiàn)在我們有了 Poll 的管理頁面。但是一個(gè) Poll 擁有多個(gè) Choices ,而 該管理頁面并沒有顯示對(duì)應(yīng)的 choices 。
是的。
我們有兩種方法來解決這個(gè)問題。第一種就像剛才 Poll 那樣在管理網(wǎng)站上 注冊(cè) Choice 。這很簡單:
from polls.models import Choiceadmin.site.register(Choice)
具體的操作,可以自己去用鼠標(biāo)點(diǎn)擊看看。
第二種方法:移除對(duì) Choice 模型的 register() 方法調(diào)用 。然后,將 Poll 的注冊(cè)代碼 編輯為如下所示:
from django.contrib import admin from polls.models import Choice, Pollclass ChoiceInline(admin.StackedInline):model = Choiceextra = 3class PollAdmin(admin.ModelAdmin):fieldsets = [(None, {'fields': ['question']}),('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),]inlines = [ChoiceInline]admin.site.register(Poll, PollAdmin)這將告訴 Django: “Choice 對(duì)象在 Poll 管理頁面中被編輯。 默認(rèn)情況下,提供 3 個(gè) choices 的字段空間。
還有個(gè)小問題。為了顯示所有關(guān)聯(lián) Choice 對(duì)象的字段需要占用大量的 屏幕空間。為此,Django 提供了一個(gè)以表格方式顯示內(nèi)嵌有關(guān)聯(lián)對(duì)象的方式; 你只需要將 ChoiceInline 聲明改為如下所示:
class ChoiceInline(admin.TabularInline):#...5.自定義管理界面的變更列表。
現(xiàn)在 Poll 的管理界面看起來不錯(cuò)了,讓我們給 “chang list” 頁面做些調(diào)整 – 顯示系統(tǒng)中所有 polls 的頁面。下面是現(xiàn)在的樣子:
默認(rèn)情況下, Django 顯示的是每個(gè)對(duì)象 str() 或者_(dá)_unicode__(self)的結(jié)果。但是若是我們能夠 顯示每個(gè)字段的話有時(shí)會(huì)更有幫助的。要做到這一點(diǎn),需要使用 list_display 管理選項(xiàng),這是一個(gè) tuple ,包含了要顯示的字段名, 將會(huì)以列的形式在該對(duì)象的 chang lsit 頁上列出來:
class PollAdmin(admin.ModelAdmin):# ...list_display = ('question', 'pub_date')現(xiàn)在 poll 的變更列表頁看起來像這樣:
?效果類似于下面這樣的:
?
轉(zhuǎn)載于:https://www.cnblogs.com/wyl9527/p/6653196.html
總結(jié)
以上是生活随笔為你收集整理的2、django管理网站的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: maven生成jar,运行却提示没有“没
- 下一篇: 动态生成数据后绑定事件