Django Admin后台管理功能使用


前言

  用過Django框架的童鞋肯定都知道,在創建完Django項目后,每個app下,都會有一個urls.py文件,里邊會有如下幾行:

1
2
3
4
5
from  django.contrib  import  admin
 
urlpatterns  =  [
     url(r '^admin/' , admin.site.urls),
]

  上邊看到導入的admin模塊,就是本節所要說的主要內容

主要功能

  功能1:提供數據庫管理功能

    基於admin模塊,可以實現類似數據庫客戶端的功能,對數據進行增刪改查

  功能2:二次開發

    基於該模塊的數據管理功能,可以二次定制一些實用的功能。

使用方法

步驟1:在settings.py中,INSTALLED_APPS中,加入django.contrib.admin

1
2
3
4
5
6
7
INSTALLED_APPS  =  [
     'django.contrib.admin' ,
     'django.contrib.auth' ,    #admin依賴
     'django.contrib.contenttypes' #admin依賴
     'django.contrib.sessions' ,   #admin依賴
      ......   
]

步驟2:urls.py創建admin路由

 

1
2
3
4
5
6
from  django.contrib  import  admin
 
urlpatterns  =  [
     url(r '^admin/' , admin.site.urls),
     ....  
]

 

步驟3:在settings.py配置文件中,中間件注冊

1
2
3
4
5
6
MIDDLEWARE  =  [
     'django.contrib.sessions.middleware.SessionMiddleware' ,
     'django.middleware.common.CommonMiddleware' ,
     'django.contrib.auth.middleware.AuthenticationMiddleware' ,
     ....
]

步驟4:創建admin管理用戶

1
python manage.py createsuperuser

步驟5:在app 的models.py文件中創建表信息,即表類

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from  django.db  import  models
 
 
class  Gender(models.Model):
     name  =  models.CharField(max_length = 32 )
 
class  userinfo(models.Model):
     nid  =  models.AutoField(primary_key = True )
     name  =  models.CharField(max_length = 30 , verbose_name = '用戶名' ,editable = False )
     email  =  models.EmailField(db_index = True )
     memo  =  models.TextField()
     img  =  models.ImageField(upload_to = 'upload' )
     user_type  =  models.ForeignKey( "UserType" , null = True , blank = True )
     gender_choices  =  (
         ( 0 "男" ),
         ( 1 "女" ),
     )
     gender  =  models.IntegerField(choices = gender_choices,default = 1 )
 
class  UserType(models.Model):
     name  =  models.CharField(max_length = 32 )
 
     def  __str__( self ):
         return  self .name

步驟6:在admin.py中注冊表

1
2
3
4
5
6
from  django.contrib  import  admin
 
# Register your models here.
from  app01  import  models
admin.site.register(models.userinfo)
admin.site.register(models.UserType)

步驟7:生成表結構

1
python  manage.py makemigrations && python manage.py migrate

注意:在數據庫表結構發生變動時,再次執行python  manage.py makemigrations就會報錯,這是因為此時表中可能已經有數據,貌然變動表結構會有影響,此時的解決方法有兩種,一種是,設置新增字段的default='xxx'某個值, 但是這種通用性不是很好。 另外一種是,設置該字段null=True。即允許為空即可

步驟8:運行項目,登陸管理界面

1
2
3
python manage.py runserver
 
訪問URL:http: / / IP: 8000 / admin

最終展示頁面

  顯示出來這個頁面,就表示admin已經可以正常管理了。

顯示優化

優化1:顯示字段信息

  這時候去UserType里邊添加幾條數據后,會發現這幾天數據都顯示User Type object,顯示很不友好。圖示如下

    

  處理辦法就是去models.py中,修改class UserType類,增加

1
2
def  __str__( self ):
     return  self .name

  增加之后,再次查看,就會顯示用戶之前增加的可視名稱了

    

優化2:優化表單信息為中文顯示

  在userinfo表中,設置了verbose_name='用戶名',這個參數的作用就是在用戶添加信息的時候,顯示“用戶名”,而不是默認的name

 

本文轉自:http://www.cnblogs.com/jishuweiwang/p/5943225.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM