好男人天堂网,久久精品国产这里是免费,国产精品成人一区二区,男人天堂网2021,男人的天堂在线观看,丁香六月综合激情

當(dāng)前位置:首頁(yè) > 網(wǎng)站舊欄目 > 學(xué)習(xí)園地 > 設(shè)計(jì)軟件教程 > 翻譯www.djangobook.com之第六章:Django管理系統(tǒng)admin

翻譯www.djangobook.com之第六章:Django管理系統(tǒng)admin
2010-01-13 23:36:48  作者:  來(lái)源:
The Django Book:第6章 Django管理系統(tǒng)admin

Web開(kāi)發(fā)中有一些我們最討厭的部分:開(kāi)發(fā)管理界面
開(kāi)發(fā)站點(diǎn)中公眾可以看見(jiàn)的部分一直不一樣也很有趣,但是管理用來(lái)編輯站點(diǎn)的部分一直是一樣的
你不得不處理用戶認(rèn)證,顯示和處理表單,處理狡猾的驗(yàn)證問(wèn)題...這很無(wú)聊而且是重復(fù)性的
Django解決這個(gè)無(wú)聊、重復(fù)的任務(wù)的方式呢?已經(jīng)幫你都做好了,只需幾行不能再少的代碼即可
Django中最老和最強(qiáng)大的部分就是自動(dòng)管理界面,它從你的模型中取得元數(shù)據(jù)來(lái)提供強(qiáng)大的產(chǎn)品級(jí)的界面
內(nèi)容制造者可以馬上使用它給站點(diǎn)添加內(nèi)容

激活管理界面
我們認(rèn)為管理界面是Django中最cool的部分,大部分Djangonauts也同意這點(diǎn)
但是由于不是每個(gè)人都需要它,它是一個(gè)可選的部分
有3個(gè)步驟來(lái)激活管理界面:
1,向你的模型添加admin metadata
并不是所有的模型都可以或者應(yīng)該被admin用戶編輯,所以你需要標(biāo)記那些需要管理界面的模型
上一章的Book模型添加一個(gè)管理界面的方法就是:
Java代碼 復(fù)制代碼
  1. class Book(models.Model):   
  2.     title = models.CharField(maxlength=100)   
  3.     authors = models.ManyToManyField(Author)   
  4.     publisher = models.ForeignKey(Publisher)   
  5.     publication_date = models.DateField()   
  6.   
  7.     class Admin:   
  8.         pass  

Admin聲明標(biāo)記這個(gè)類擁有一個(gè)管理界面,在Admin之下你可以配置許多選項(xiàng)
目前我們采用默認(rèn)值,所以我們使用pass來(lái)表示Admin類是空的
如果你正在按這個(gè)例子寫(xiě)自己的代碼,現(xiàn)在給Publisher和Author類添加Admin聲明是個(gè)好主意
2,安裝admin模型,簡(jiǎn)單的把"django.contrib.admin"添加到你的INSTALLED_APPS設(shè)置里
然后運(yùn)行python manage.py syncdb來(lái)安裝admin使用的額外的表
注意,在你第一次運(yùn)行syncdb時(shí),你很可能被問(wèn)起是否創(chuàng)建一個(gè)superuser
如果那時(shí)你沒(méi)有創(chuàng)建superuser,你需要運(yùn)行djang/contrib/auth/bin/create_superuser.py
來(lái)創(chuàng)建一個(gè)admin用戶,否則你就不能登錄到管理界面里去
3,把URL模式添加到urls.py,如果仍在使用startproject創(chuàng)建的工程,admin的URL模式可能
已經(jīng)在那兒了,但是被注釋掉了,你的URL模式應(yīng)該像這樣:
Java代碼 復(fù)制代碼
  1. from django.conf.urls.defaults import *   
  2.   
  3. urlpatterns = patterns('',   
  4.     (r'^admin/', include('django.contrib.admin.urls')),   
  5. )  

就這樣,現(xiàn)在運(yùn)行python manage.py runserver來(lái)啟動(dòng)服務(wù)器,你將看到如下信息:
Validating models...
0 errors found.

Django version 0.96-pre, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
現(xiàn)在你可以訪問(wèn)http://127.0.0.1:8000/admin/,登錄,然后隨便玩玩

使用管理界面
管理頁(yè)面設(shè)計(jì)用來(lái)給非技術(shù)人員使用,所有非常簡(jiǎn)單,但有幾個(gè)地方需要注意
首先你將看到登錄界面,可以用你第一次運(yùn)行syncdb時(shí)創(chuàng)建的用戶名和密碼來(lái)登錄

登錄之后你將看到你可以管理用戶,組和權(quán)限
每個(gè)聲明了Admin的對(duì)象將顯示在首頁(yè)上,添加和編輯這兩個(gè)鏈接將導(dǎo)向改動(dòng)列表和編輯表單的頁(yè)面

改動(dòng)列表是系統(tǒng)中對(duì)象列表的首頁(yè)
[img]http://media.djangobook.com/content/chapter06/changelist.png[/imag]
有很多選項(xiàng)來(lái)控制哪些域顯示在這個(gè)列表中以及其它特性的外觀,如日期格式,搜索域和過(guò)濾接口
下面會(huì)有對(duì)這些特性更多的解釋
編輯表單用來(lái)編輯已有的對(duì)象和創(chuàng)建新對(duì)象
你的模型的每個(gè)域?qū)@示在這里,不同的域類型有不同的顯示界面,如日期和時(shí)間域是日歷控件
而外鍵使用的是選擇框等等

你會(huì)注意到admin也為你處理輸入驗(yàn)證,試著留一個(gè)需要的域不填,或者在一個(gè)時(shí)間域里輸入不合法的時(shí)間,你會(huì)看到當(dāng)你保存時(shí)出現(xiàn)錯(cuò)誤顯示

驗(yàn)證是第7章講到的一個(gè)強(qiáng)大的驗(yàn)證框架來(lái)做的
當(dāng)編輯一個(gè)對(duì)象時(shí)你會(huì)在右上方看到一個(gè)歷史鏈接,admin上的每一個(gè)改動(dòng)都會(huì)被記入日志
你可以點(diǎn)擊歷史按鈕來(lái)查看日志

admin里的刪除是級(jí)聯(lián)的,當(dāng)你刪除一個(gè)對(duì)象時(shí),admin會(huì)讓你確認(rèn)刪除動(dòng)作以避免代價(jià)昂貴的錯(cuò)誤
確認(rèn)頁(yè)面也會(huì)顯示所有將被刪除的相關(guān)的對(duì)象


用戶,組,權(quán)限
既然你用superuser登錄,你擁有創(chuàng)建,編輯和刪除任何對(duì)象的權(quán)限
盡管如此,admin也有一個(gè)用戶權(quán)限系統(tǒng),你可以使用它來(lái)約束其它用戶的訪問(wèn)權(quán)限
你可以像編輯其它對(duì)象一樣來(lái)編輯這些用戶和權(quán)限,用戶和組模型的鏈接和其它你定義的對(duì)象一樣顯示在admin首頁(yè)
用戶對(duì)象有標(biāo)準(zhǔn)的用戶名,密碼,郵件和真實(shí)姓名域,以及一些定義用戶在admin的權(quán)限的域
首先,這里有一些flags:
1,“is active”控制用戶是否是活動(dòng)的,如果這項(xiàng)flag為off,這個(gè)用戶將不能訪問(wèn)任何需要登錄的URL
2,“is staff”控制用戶是否允許登錄admin,由于第12章講到這個(gè)用戶系統(tǒng)同樣被用來(lái)控制對(duì)public頁(yè)面的
訪問(wèn)權(quán)限,這個(gè)flag對(duì)于public用戶和管理員的含義不同
3,“is superuser”給予用戶在admin的任何訪問(wèn)權(quán)限,普通的權(quán)限將被忽略
對(duì)于正常的admin用戶,即活動(dòng)的而非superuser的staff用戶,他們的訪問(wèn)權(quán)限取決于一些被分配的權(quán)限
每個(gè)可以在admin編輯的對(duì)象擁有3個(gè)權(quán)限:創(chuàng)建權(quán)限,編輯權(quán)限和刪除權(quán)限,給一個(gè)用戶賦予權(quán)限將
允許用戶訪問(wèn)這些權(quán)限所描述的頁(yè)面
注意,對(duì)編輯用戶和編輯權(quán)限的訪問(wèn)同樣在這個(gè)權(quán)限系統(tǒng)控制,如果你給一個(gè)用戶編輯用戶的權(quán)限,
她將可以編輯她自己的權(quán)限,這可能是你的初衷!
你也可以給用戶分配組,一個(gè)組就是一些權(quán)限,組的權(quán)限將分配給組的成員
給用戶賦予一套數(shù)量很多的權(quán)限時(shí)組就很有用了

定制管理界面
有許多方式來(lái)定制admin的界面外觀和行為,我們僅僅看其中跟我們的“Book”模型相關(guān)的一些
第12章詳述了定制admin界面
現(xiàn)在books的改動(dòng)列表僅僅顯示模型的string展現(xiàn),即__str__
這對(duì)于少量的books可以很好的工作,但是如果我們有成千上萬(wàn)的books,這將很難在干草推里找到唯一的那根針
盡管如此,我們可以給這個(gè)界面很方便的添加一些顯示,搜索和過(guò)濾方法,編輯Admin定義:
Java代碼 復(fù)制代碼
  1. class Book(models.Model):   
  2.     title = models.CharField(maxlength=100)   
  3.     authors = models.ManyToManyField(Author)   
  4.     publisher = models.ForeignKey(Publisher)   
  5.     publication_date = models.DateField()   
  6.   
  7.     class Admin:   
  8.         list_display   = ('title''publisher''publication_date')   
  9.         list_filter    = ('publisher''publication_date')   
  10.         ordering       = ('-publication_date',)   
  11.         search_fields  = ('title',)  

這4行代碼神奇的改變了我們的列表界面:

這些定義中的每一行都告訴admin來(lái)構(gòu)建一個(gè)不同的界面:
1,ordering選項(xiàng)控制了對(duì)象在admin里面顯示的順序,它是對(duì)結(jié)果排序的域的列表
前面加一個(gè)減號(hào)將排反序,所以例子中我們對(duì)publication_date排序,最近的書(shū)將顯示在最前面
2,list_display選項(xiàng)控制了在改動(dòng)列表里哪些列將顯示,默認(rèn)情況下將只顯示對(duì)象的string展示
這一個(gè)單獨(dú)的列,這里我們顯示title,publisher和publication_date
3,list_filter選項(xiàng)將在列表的右上方創(chuàng)建過(guò)濾器條,我們?cè)试S通過(guò)date和publisher來(lái)過(guò)濾
你可以讓admin過(guò)濾任何域,但是外鍵或者有chioces屬性集的域工作的更好
4,最后search_fields選項(xiàng)創(chuàng)建一個(gè)允許文本搜索的域,這里允許通過(guò)title域搜索
通過(guò)這里以及第12章描述的選項(xiàng)你可以只用幾行代碼構(gòu)建一個(gè)強(qiáng)大的具備產(chǎn)品能力的編輯數(shù)據(jù)界面


定制管理系統(tǒng)的外觀
顯然在每個(gè)管理頁(yè)面的頂端擁有一個(gè)“Django 管理系統(tǒng)”是很荒謬的,它只是一個(gè)占位文本
盡管如此,使用Django的模板系統(tǒng)可以很容易改變這點(diǎn),Django的admin是Django自己支持的
它的界面使用Django自己的模板系統(tǒng)
打開(kāi)mysite/settings.py看看TEMPLATE_DIRS設(shè)置,用來(lái)載入Django模板時(shí)檢查文件系統(tǒng)目錄
它是一個(gè)搜索的路徑,默認(rèn)情況下它是空的,下面我們加點(diǎn)東西來(lái)告訴Django我們的模板在哪:
Java代碼 復(fù)制代碼
  1. TEMPLATE_IDRS = (   
  2.     "/home/mytemplates", # Change this to your own directory.   
  3. )  

注意這里包括了最后的逗號(hào),Python使用它來(lái)區(qū)分單元素元組和括號(hào)括起來(lái)的表達(dá)式
現(xiàn)在把a(bǔ)dmin/base_site.html從Django的admin模板目錄(django/contrib/admin/templates)復(fù)制到
TEMPLATE_DIRS下的admin子目錄下,admin是新建的子目錄
然后編輯admin/base_site.html,用你自己的站點(diǎn)的名字替換Django文本
注意任何Django的默認(rèn)admin模板都可以覆蓋,只需像base_site.html一樣覆蓋模板
即從默認(rèn)目錄復(fù)制你的自定義目錄然后改變這個(gè)副本
敏銳的讀者可能想知道,如果TEMPLATE_DIRS默認(rèn)是空的,Django是怎樣找到默認(rèn)的admin模板的?
答案是,默認(rèn)情況下Django自動(dòng)在每個(gè)app包下搜尋templates/子目錄下的模板
看看第10章的“模板載入器”你將了解關(guān)于它的更多信息

定制管理系統(tǒng)首頁(yè)
同樣需要注意的是,你可能想定制Django的admin首頁(yè)外觀
默認(rèn)時(shí)它將根據(jù)INSTALLED_APPS并按程序名排序顯示所有的apps
盡管如此,你可能想改變這個(gè)顯示順序來(lái)使你更容易找到你要的apps
畢竟首頁(yè)時(shí)admin最重要的頁(yè)面,它應(yīng)該很容易使用才行
需要定制的模板時(shí)admin/index.html,記得把a(bǔ)dmin/base_site.html復(fù)制到你的自定義模板目錄
編輯這個(gè)文件,你將看到它使用模板標(biāo)簽{% get_admin_app_list as app_list %}
這就是得到所有安裝的Django app的魔法所在
你可以用你認(rèn)為最好的方法硬編碼對(duì)象專有的admin頁(yè)面來(lái)替換這個(gè)標(biāo)簽
如果你不太明白硬編碼鏈接,可以參考第10章的實(shí)現(xiàn)你自己的模板標(biāo)簽的細(xì)節(jié)
Django在這個(gè)地方提供另一個(gè)捷徑,運(yùn)行python mange.py adminindex <app>來(lái)在admin首頁(yè)模板
包含一些模板代碼,開(kāi)始時(shí)這十分有用
參考第12章關(guān)于定制Django的admin站點(diǎn)外觀的細(xì)節(jié)

何時(shí)使用和為什么使用管理界面
我們認(rèn)為Django的admin界面很神奇,事實(shí)上,我們稱它為Django的一個(gè)“殺手級(jí)特性”
盡管如此,我們經(jīng)常被問(wèn)到admin的“use cases”這個(gè)問(wèn)題,即什么時(shí)候我們使用它,以及為什么使用它?
這幾年我們討論了許多使用admin界面可能有幫助的模式
顯然它對(duì)于編輯數(shù)據(jù)十分有用,如果你有一些數(shù)據(jù)輸入的任務(wù),admin就是你想要的
我們也發(fā)現(xiàn)admin在下面幾種情況下十分有用:
1,檢查數(shù)據(jù)模型,當(dāng)我們定義一個(gè)新模型后第一件事就是在admin里面激活它并且輸入一些模擬數(shù)據(jù)
發(fā)現(xiàn)一些數(shù)據(jù)模型錯(cuò)誤是很常見(jiàn)的,有一個(gè)圖形界面來(lái)揭露這些錯(cuò)誤會(huì)很有用
2,管理需要的數(shù)據(jù),例如對(duì)于chicagocrime.org有自動(dòng)的數(shù)據(jù)數(shù)據(jù)產(chǎn)生源,但是當(dāng)數(shù)據(jù)源出現(xiàn)問(wèn)題,
我們可以通過(guò)admin很輕松的編輯數(shù)據(jù)

安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢
成人免费观看的视频黄页| 精品视频一区二区三区免费| 国产不卡在线观看视频| 精品视频免费观看| 可以免费看毛片的网站| 国产伦精品一区二区三区无广告 | 日日夜夜婷婷| 国产高清在线精品一区二区| 久久精品欧美一区二区| 国产一区二区精品久久| 国产视频一区在线| 日韩专区亚洲综合久久| 精品久久久久久综合网| 国产成人欧美一区二区三区的| 国产一区精品| 国产不卡在线观看视频| 国产精品1024在线永久免费| 精品在线免费播放| 成人在激情在线视频| 国产成人啪精品| 久久精品店| 久久国产一区二区| 韩国三级视频网站| 日韩在线观看视频免费| 国产成人精品影视| 亚洲精品永久一区| 国产麻豆精品高清在线播放| 国产一级生活片| 韩国毛片免费| 国产国产人免费视频成69堂| 国产a一级| 日本在线不卡视频| 日韩专区一区| 91麻豆精品国产自产在线观看一区| 成人高清视频在线观看| 99热视热频这里只有精品| 国产一区精品| 亚洲天堂免费| 999久久久免费精品国产牛牛| 国产亚洲精品成人a在线| 国产视频久久久| 国产一区二区精品在线观看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 久久久久久久网| 韩国三级视频网站| 精品视频一区二区三区| 日本特黄特色aaa大片免费| 国产a一级| 国产麻豆精品免费视频| 国产麻豆精品高清在线播放| 国产原创中文字幕| 中文字幕97| 99久久精品费精品国产一区二区| 毛片的网站| 一本高清在线| 青青久热| 欧美另类videosbestsex久久| 欧美另类videosbestsex高清| 成人a级高清视频在线观看| 日韩男人天堂| 韩国三级视频网站| 国产视频一区在线| 国产韩国精品一区二区三区| 91麻豆国产福利精品| 亚洲www美色| 国产一区二区精品尤物| 欧美激情一区二区三区在线| 亚欧成人乱码一区二区| 亚飞与亚基在线观看| 四虎影视久久久| 久草免费资源| 沈樵在线观看福利| 久久99爰这里有精品国产| 一 级 黄 中国色 片| 日韩一级黄色片| 午夜久久网| 欧美国产日韩在线| 久久精品大片| 韩国毛片基地| 亚洲精品久久玖玖玖玖| 99色播| 99久久精品国产高清一区二区| 韩国毛片基地| 国产一区精品| 国产亚洲免费观看| 久久精品成人一区二区三区| 99色视频在线| 99久久网站| 欧美激情伊人| 一级片片| 国产国语在线播放视频| 日韩一级黄色大片| 精品国产亚洲一区二区三区| 精品国产一区二区三区免费 | 日韩中文字幕一区二区不卡| 午夜激情视频在线观看| 国产精品1024永久免费视频| 亚洲 男人 天堂| 国产一区二区精品久久| 日韩在线观看视频免费| 精品国产亚洲一区二区三区| 国产一区免费在线观看| 一 级 黄 中国色 片| 免费毛片播放| 香蕉视频久久| 美女被草网站| 欧美一级视| 久久精品成人一区二区三区| 国产激情一区二区三区| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产精品自拍亚洲| 日韩一级黄色片| 国产a一级| 精品视频在线看 | 精品视频在线观看免费| 黄视频网站在线观看| a级毛片免费观看网站| 国产91素人搭讪系列天堂| 国产一区免费在线观看| 成人影视在线观看| 高清一级片| 九九热国产视频| 麻豆污视频| 成人av在线播放| 亚洲精品中文一区不卡| 国产不卡精品一区二区三区| 国产极品精频在线观看| 韩国三级香港三级日本三级la | 国产91精品系列在线观看| 午夜精品国产自在现线拍| 欧美电影免费| 日韩一级黄色片| 高清一级做a爱过程不卡视频| 欧美激情一区二区三区视频 | 国产韩国精品一区二区三区| 黄视频网站在线免费观看| 久久精品欧美一区二区| 日韩免费在线| 日本伦理网站| 亚洲精品中文字幕久久久久久| 欧美国产日韩一区二区三区| 精品久久久久久中文字幕一区| 欧美国产日韩精品| 久久99中文字幕久久| 亚洲天堂免费| 一本高清在线| 美国一区二区三区| 精品国产三级a| 夜夜操网| 九九干| 91麻豆国产| 国产91精品一区| 欧美一区二区三区在线观看| 欧美一级视频免费| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 精品国产亚洲人成在线| 国产伦久视频免费观看 视频| 成人影院一区二区三区| 精品国产亚洲一区二区三区| 午夜在线观看视频免费 成人| 日韩欧美一二三区| 欧美1区| 欧美日本二区| 国产一区二区精品| 黄色免费三级| 日韩免费在线视频| 欧美日本二区| 国产伦精品一区二区三区无广告 | 精品视频在线观看视频免费视频| 久久精品欧美一区二区| 欧美爱爱网| 欧美激情伊人| a级精品九九九大片免费看| 高清一级毛片一本到免费观看| 精品国产亚洲一区二区三区| 高清一级做a爱过程不卡视频| 精品视频在线观看一区二区| 国产视频网站在线观看| 日日夜夜婷婷| 国产网站免费| 久久精品人人做人人爽97| 国产伦久视频免费观看 视频| 国产视频一区二区在线观看| 国产极品精频在线观看| 四虎久久影院| 久久精品欧美一区二区| 精品国产一区二区三区精东影业| 你懂的国产精品| 欧美一区二区三区在线观看| 欧美电影免费| 可以免费看毛片的网站| 亚欧乱色一区二区三区| 日韩在线观看网站| 99久久精品国产麻豆| 91麻豆国产| 精品久久久久久中文| 精品国产一区二区三区国产馆| 久草免费在线观看| 欧美一级视| 99久久视频|