Django站點管理
阿新 • • 發佈:2019-01-02
開發 itl rom idt 概述 類型 17. bsp 列表
1.概述
一個網站分為前臺(普通用戶訪問)和管理後臺(由網站管理員訪問)兩部分。
管理後臺由網站的管理員負責查看、添加、修改、刪除數據,開發這些重復的功能是一件單調乏味、缺乏創造力的工作,為此,Django能夠根據定義的模型類自動地生成管理模塊 使用Django的管理模塊,需要按照如下步驟操作
管理界面本地化
創建管理員
註冊模型類
自定義管理頁面
2.配置admin
在settinngs.py文件中的INSTALLED_APPS中添加‘django.contrib.admin‘
3.創建管理員用戶
python manage.py createsuperuser
4.登錄Django站點管理
瀏覽器地址輸入 127.0.0.1:8000/admin
5.漢化
在settings.py文件中修改
LANGUAGE_CODE = ‘zh-Hans‘ TIME_ZONE = ‘Asia/Shanghai‘
6.修改admin.py文件
from django.contrib import admin from .models import Grade,Student admin.site.register(Grade) admin.site.register(Student)
7.添加數據
8.修改models.py
#班級 class Grade(models.Model): gname = models.CharField(max_length=20) gdate = models.DateField() gnum = models.IntegerField() isDelete = models.BooleanField(default=False) def __str__(self): return self.gname
9.列表頁顯示修改
- list_display 顯示字段
- list_filter 過濾字段
- search_fields 搜索字段
- list_per_page 列表分頁
10.中文標題
class Student(models.Model): sname = models.CharField(max_length=20,verbose_name="學生姓名") ......
11.添加修改頁
class studentAdmin(admin.ModelAdmin): # 修改列表頁 list_display = [‘id‘, ‘sname‘, ‘sage‘, ‘sinfo‘, ‘sgrade_id‘,‘isDelete‘] list_filter = [‘sgrade_id‘] search_fields = [‘sname‘] list_per_page = 5 # 修改添加修改頁 # fields = [‘sname‘,‘sgrade‘, ‘sinfo‘, ‘sage‘, ‘isDelete‘] fieldsets = [ ("學生信息", {"fields": [‘sname‘, ‘sage‘,‘sinfo‘]}), ("班級信息", {"fields": [‘sgrade‘]}), ("其它信息", {"fields": [‘isDelete‘]}), ] # 註冊 admin.site.register(Student,studentAdmin)
12.外鍵關聯
# 關聯對象 class Grade_tudent(admin.TabularInline): model = Student extra = 1 class GradeAdmin(admin.ModelAdmin): # 關聯對象 inlines = [Grade_tudent]
13.布爾值顯示修改
class studentAdmin(admin.ModelAdmin): # 修改布爾類型值顯示 def gender(self): if self.sgender: return "男" else: return "女" # 修改列表頁 list_display = [‘sname‘,‘sage‘,gender, ‘sinfo‘, ‘sgrade‘,‘isDelete‘]
14.操作選項的位置
# 動作執行的位置 actions_on_top = False actions_on_bottom = True
15. django-admin後臺美化
1)pip安裝grappelli
pip install django-grappelli
2)settings.py中添加
INSTALLED_APPS = ( ‘grappelli‘, #必須在‘django.contrib.admin‘之前 ‘django.contrib.admin‘, )
3)urls.py中添加映射關系
(r‘^grappelli/‘,include(‘grappelli.urls‘)),
4)settings.py中添加
ADMIN_MEDIA_PREFIX = STATIC_URL + "grappelli/" #把admin的靜態文件,由原來的admin目錄,改為映射到static目錄下的 grapplli.GRAPPELLI_ADMIN_TITLE=‘BBS後臺管理系統‘#更改grappellie的登入title
5)靜態文件根目錄
STATIC_ROOT=BASE_DIR+‘/static/‘ #把靜態文件放置於項目文件所在的static文件夾
6)收集靜態文件
python manage.py collectstatic
效果預覽
Django站點管理