diango站点管理
使用站点管理
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)
站点样式: