五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > Django筆記-Admin

Django筆記-Admin

文章來源:365jz.com     點擊數(shù):278    更新時間:2009-10-26 09:27   參與評論

1.Using the Admin site
admin模塊在django.contrib中,所以添加admin管理時需要在ulrs中去掉以下兩行注釋;
from django.contrib import admin
admin.autodiscover()

2.setting設置
1)在INSTALLED_APPS中添加django.contrib.admin
小技巧:INTALLED_APPS最好以alphabetical排列,這樣比較容易閱讀。

2)確保以下三個app被安裝
django.contrib.sessions
django.contrib.contenttypes
django.contrib.auth

3)MIDDLEWARE_CLASSES打開
django.middleware.common.CommonMiddleware
django.contrib.sessions.middleware.SessionMiddleware
django.contrib.auth.middleware.AuthenticationMiddleware

4)安裝admin數(shù)據(jù)庫
如果以上幾點是新添加的,那么需要添加amdin管理用數(shù)據(jù)庫。
python manage.py syncdb

5)createsuperuser
如果在安裝數(shù)據(jù)庫時沒有創(chuàng)建superuser,則可以用以下命令創(chuàng)建
python manage.py createsuperuser

3.Adding your models to the Admin site
在books app目錄下創(chuàng)建admin.py文件,注意這個文件名只能叫admin.py不能是別的。
因為在django家在urls.py時會執(zhí)行admin.autodiscover()函數(shù),該函數(shù)從INSTALLED_APPS
中查找app,并在對應的app下查找amdin.py文件名。執(zhí)行admin.py的內容。
e.g.
from django.contrib import admin
from website.books import models

admin.site.register(models.Publisher)
admin.site.register(models.Author)
admin.site.register(models.Book)

4.修改admin可編輯屬性

admin會根據(jù)在創(chuàng)建數(shù)據(jù)庫時的非空與否屬性來確定字段是否必填。
默認的字段都是必須填的,如果可以為空可以自己添加屬性。e.g.
class Author(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=40)
    email = models.EmailField(blank=True)
注意:對于時間和數(shù)字,允許為空的條件需要blank=True,null=True,否則會引發(fā)錯誤。
models.DateField(blank=True, null=True)
這里blank=True沒有改變數(shù)據(jù)庫屬性,但是null=True卻改變了數(shù)據(jù)庫的屬性,所以
在添加null=True后需要更改數(shù)據(jù)庫,這個在上一節(jié)已經(jīng)描述過了,需要用數(shù)據(jù)庫命令來修改。

5.Customizing field labels
默認情況下,數(shù)據(jù)庫的field名字在admin中顯示的是數(shù)據(jù)庫定義時的名字,例如上面例子中first_name
顯示的就是first_name,這個可以修改在數(shù)據(jù)庫中顯示的名字(label),例如:
class Author(models.Model):
    first_name = models.CharField(max_length=30,verbose_name="姓名")
    last_name = models.CharField(max_length=40)
    email = models.EmailField(blank=True)
   
    def __unicode__(self):
   return self.last_name
6.Customizing ModelAdmin class
1)默認情況下amdin中顯示某個表中的內容是__unicode__函數(shù)中定義的內容。例如上面的例子
Author表中在admin中只會顯示last_name列內容。
類似下面的表示:
Author #表名
xiuqi  #作者的last_name
yogngao

2)顯然這個樣子是很難看的,我們可以完全定制顯示形式包括5中提到的修改label名。
修改后的例子:
#admin.py
from django.contrib import admin
from mysite.books.models import Publisher, Author, Book

class AuthorAdmin(admin.ModelAdmin):
    list_display = ('first_name', 'last_name', 'email')

admin.site.register(Publisher)
admin.site.register(Author, AuthorAdmin)
admin.site.register(Book)
#models.py
class Author(models.Model):
    first_name = models.CharField(max_length=30,verbose_name="姓名")
    last_name = models.CharField(max_length=40)
    email = models.EmailField(blank=True)
這樣修改后的表示形式為:
姓名 last_name email
zhang  san   xxx@mail.com
sun  yonggao   xxx@mail.com
3)其他定制項目
search_fields = ('first_name', 'last_name')
list_filter = ('first_name',)
date_hierarchy = ('first_name')
ordering = ('-first_name',)
fields = ('last_name', 'first_name', 'email', )#定制列的先后順序
#利用fields屬性同樣可以起到控制可編輯域作用,即不想被編輯的域直接就
#可以不列出來。

7.控制用戶 組 權限
這個直接配置即可。

<本節(jié)完>

如對本文有疑問,請?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會為你解答??! 點擊進入論壇

發(fā)表評論 (278人查看,0條評論)
請自覺遵守互聯(lián)網(wǎng)相關的政策法規(guī),嚴禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學習

業(yè)務咨詢

· 技術支持
· 服務時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權所有 鄂ICP備17013400號