Django: 后台常用操作
指定状态码
return JsonResponse(data, status=201)
Djano删除数据库
删除对应数据库后,删除对应文件
删除对应的记录
Django后台管理
创建超级管理员
python manage.py createsuperuser
在后台中管理数据模型
# admin.py
from django.contrib import admin
from JiLian.models import UserModel, Address
admin.site.register(UserModel)
admin.site.register(Address)
在后台中查看数据
class UserModel(models.Model):
u_name = models.CharField(max_length=16, unique=True)
u_password = models.CharField(max_length=256)
# 以下代码,可以在后台中看到数据
def __str__(self):
return self.u_name
class Address(models.Model):
a_address = models.CharField(max_length=128)
a_user = models.ForeignKey(UserModel, on_delete=models.CASCADE, null=True, blank=True, related_name='address_list')
def __str__(self):
return self.a_address
个性化站点管理
若感觉默认的站点样式不能满足应用需求,则可以通过继承Django定义的管理员数据模型,模板,站点类来开发出个性化的管理员站点。注册的时候添加自己的管理类
# admin.py
# 创建管理类
class StudentAdmin(admin.ModelAdmin):
# 规则
pass
# 注册管理类
admin.site.register(Students,StudentAdmin)
#显示规则
list_display 显示字段
list_filter 过滤字段
search_fields 搜索字段
list_per_page 分页,每页多少条数据
orderng 排序规则
分组显示
fieldsets = (
('班级', {fields:('sgrade')}),
('姓名',{fields:('sname')}),
)
# 修改规则
fields 显示字段
exclude 不显示的字段
筛选字段
class UserAdmin(admin.ModelAdmin):
# 筛选字段
list_filter = 'u_name', 'u_password'
admin.site.register(UserModel, UserAdmin)
搜索字段
class UserAdmin(admin.ModelAdmin):
# list_display 显示字段
list_filter = 'u_name', 'u_password'
# 搜索字段
search_fields = 'u_name',
pass
admin.site.register(UserModel, UserAdmin)
自定义显示字段
class UserAdmin(admin.ModelAdmin):
# list_display 显示字段
list_display = 'u_name', 'u_password'
# 筛选字段
list_filter = 'u_name', 'u_password'
# 搜索字段
search_fields = 'u_name',
pass
admin.site.register(UserModel, UserAdmin)
分页显示
class UserAdmin(admin.ModelAdmin):
# list_display 显示字段
list_display = 'u_name', 'u_password'
# 筛选字段
list_filter = 'u_name', 'u_password'
# 搜索字段
search_fields = 'u_name',
# 每页显示三条
list_per_page = 3
pass
admin.site.register(UserModel, UserAdmin)
分组显示
class StudentAdmin(admin.ModelAdmin):
def sex(self):
if self.s_sex:
return '男'
else:
return '女'
sex.short_description = '性别'
list_display = 's_name', 's_age', sex
# 分组显示
fieldsets = (
('基本信息', {'fields': ('s_name', 's_age', 's_sex')}),
('可选信息', {'fields': ('s_height', 's_weight')}),
)
admin.site.register(Student, StudentAdmin)
级联显示
class StudentInfo(admin.TabularInline):
extra = 3
model = Student
class GradeAdmin(admin.ModelAdmin):
list_display = 'g_name', 'g_postion'
inlines = [StudentInfo]
自定义后台管理模板
覆盖系统模板的方式,在django/contrib/admin/templates/admin
中,将需要重新定制的文件复制出来,在自己的工程中创建相对应的子目录,在settings.py
中注入模板路径,子模板继承子复制的模板添加自己的代码。
自定义登录页面
原始文件路径:
E:\WorkSpace\python_xnhj\HelloRest\Lib\site-packages\django\contrib\admin\templates\admin\login.html
在templates
文件夹中新建\admin\login.html
Django后台模板
学以致用,知行合一