概述
负责添加、修改、删除内容,开发这些重复的功能是一件没有创造力的事情。因此Django会根据定义的模型自动生成管理模块
配置Admin应用
在settings.py文件中的INSTALL_APPS中添加'django.contrib.admin'
默认已经配置
创建管理员用户
python manage.py createsuperuser
按提示依次输入用户名、邮箱、密码
登录
浏览器中输入 127.0.0.1:8000/admin
汉化
修改settins.py文件中的配置:
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
管理数据表
引用目录下的admin.py文件中注册模型
from django.contrib import admin
# Register your models here.
from myApp.models import Grade, Student
admin.site.register(Grade)
admin.site.register(Student)
自定义管理界面
ModelAdmin类是模型在Admin界面中的表现形式,通过定义ModelAdmin的子类,来定义模型在Admin界面的显示方式
属性说明
关联对象
在添加班级时可以直接添加几个学生
class StudentInline(admin.TabularInline):
model = Student
extra = 2 # 可以添加2个学生
class GradeAdmin(admin.ModelAdmin):
inlines = [StudentInline]
list_display = ['pk', 'name', 'boyNum', 'girlNum', 'isDelete']
admin.site.register(Grade, GradeAdmin)
布尔值的显示问题
class StudentAdmin(admin.ModelAdmin):
def sex(self):
if self.sex:
return '男'
else:
return '女'
sex.short_description = '性别'
def content(self):
return self.content
content.short_description = '内容'
# 列表页属性
list_display = ['pk', 'name', 'age', sex, content,
'grade', 'isDelete']
执行动作的位置
class StudentAdmin(admin.ModelAdmin):
actions_on_bottom = True
actions_on_top = True
使用装饰器注册
@admin.register(Student)
class StudentAdmin(admin.ModelAdmin):
actions_on_bottom = True
actions_on_top = True
def sex(self):
if self.sex:
return '男'
else:
return '女'
sex.short_description = '性别'
def content(self):
return self.content
content.short_description = '内容'
# 列表页属性
list_display = ['pk', 'name', 'age', sex, content,
'grade', 'isDelete']
list_filter = ['grade']
search_fields = ['content']
list_per_page = 15
# 添加,修改页属性
# fields = ['name','age','sex','content','grade', 'isDelete']
fieldsets = [
('base', {'fields': ['name', 'age', 'grade']}),
('more', {'fields': ['sex', 'content', 'grade', 'isDelete']}),
]
# admin.site.register(Student, StudentAdmin)
Xadmin自学
安装
https://github.com/sshwsfc/xa...
GitHub上下载 xadmin安装包,由于安装会报错,编码问题,需要修改压缩包中的一个文件,将压缩包中的README.rst 替换为自己新建的同样名字的空文件。 然后cmd进入该目录 执行安装
pip install xadmin-master.zip
配置
settings.py
INSTALLED_APPS = [
'xadmin',
'crispy_forms',
'reversion',
]
主路由urls.py
import xadmin
xadmin.autodiscover()
# version模块自动注册需要版本控制的 Model
from xadmin.plugins import xversion
xversion.register_models()
urlpatterns = [
url(r'xadmin/', include(xadmin.site.urls)),
]
如果出现no such table 是由于数据库中没有xadmin的表的问题,可以删除数据库,执行迁移。。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。