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