diango站點管理
阿新 • • 發佈:2018-11-03
使用站點管理
Django中預設集成了後臺資料管理頁面,通過簡單的配置就可以實現模型後臺的Web控制檯,如果沒有整合,自己在settings中的INSTALLED_APPS新增'django.contrib.admin'
應用就好了
設定為中文
settings中LANGUAGE_CODE = 'zh-hans'
設定時間,時區
TIME_ZONE='Asia/Shanghai'
在瀏覽器中輸入127.0.0.1:埠號/admin,可進入後臺資料管理頁面:
要進入站點管理首先需要建立一個管理員賬戶:使用指令python manager.py createsuperuser
登入之後可以看到以下介面:
自定義站點管理
在應用目錄下的admin.py檔案中,寫入程式碼:
from django.contrib import admin # Register your models here. from app01.models import Person class PersonAdmin(admin.ModelAdmin): # 設定顯示的欄位 數組裡放的是模型屬性 list_display = ['id', 'p_name', 'p_age'] admin.site.register(Person, PersonAdmin)
注:Person為自己在model中建立的模型
APP01下的為自定義建立的站點管理
點選可以看到Person下儲存的所有資料
可以看到以上姓名欄為中文,年齡欄為英文:該樣式原因為models中定義Person時,為姓名欄添加了verbose_name
屬性,以下為完整程式碼:
from django.db import models # Create your models here. class Person(models.Model): p_name = models.CharField( max_length=30, verbose_name='姓名' ) p_age = models.IntegerField( default=0 ) def __str__(self): return self.p_name
可以在class Person的程式碼中新增程式碼:
class Meta:
verbose_name = '人'
可以將Person名字重新命名為中文,效果如下:
-
顯示規則
-
list_display 顯示欄位
-
list_filter 過濾欄位
-
search_fields 搜尋欄位
-
list_per_page 分頁,每頁顯示多少條資料
-
ordering 排序規則
-
分組顯示 fieldsets = (
(‘姓名’,{fields:(‘p_name’)}),
(‘年齡’,{fields:(‘p_age’)}),
)
-
-
修改規則
- fields 顯示的欄位
- exclude 不顯示的欄位
以下為寫入多種規則的樣式:
from django.contrib import admin
# Register your models here.
from app01.models import Person
class PersonAdmin(admin.ModelAdmin):
# 傳遞函式
def setNewAge(self):
if self.p_age > 45:
return '中年人'
else:
return self.p_age
# 設定顯示的欄位 數組裡放的是模型屬性
list_display = ['id', 'p_name', 'p_age', setNewAge] # 將函式寫入顯示的欄位中才會在站點中顯示
# 設定過濾條件
list_filter = ['p_age', 'p_name']
# 設定搜尋欄位
search_fields = ['p_name', 'p_age']
# 設定分頁 後面填入每一頁的資料數量
list_per_page = 10
# 設定排序規則 欄位名前方加負號表示逆序,否則正序
ordering = ['-p_age']
admin.site.register(Person, PersonAdmin)
站點樣式: