Django: 后台常用操作

指定状态码

return JsonResponse(data, status=201)

image-20210718183451044.png

Djano删除数据库

删除对应数据库后,删除对应文件

image-20210720201435427.png
删除对应的记录

image-20210720202023925.png

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)

image-20210722161807192.png

在后台中查看数据

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

image-20210722162158466.png

个性化站点管理

若感觉默认的站点样式不能满足应用需求,则可以通过继承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)

tempsnip.png

搜索字段

class UserAdmin(admin.ModelAdmin):
    # list_display 显示字段
    list_filter = 'u_name', 'u_password'
    # 搜索字段
    search_fields = 'u_name',
    pass
​
admin.site.register(UserModel, UserAdmin)

tempsnip-1626943831676.png

自定义显示字段

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)

tempsnip-1626944172596.png

分页显示

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)

tempsnip-1626944732699.png

分组显示

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)

tempsnip-1626964590856.png

级联显示

class StudentInfo(admin.TabularInline):
    extra = 3
    model = Student
​
class GradeAdmin(admin.ModelAdmin):
    list_display = 'g_name', 'g_postion'
    inlines = [StudentInfo]

image-20210722233657292.png

自定义后台管理模板

覆盖系统模板的方式,在django/contrib/admin/templates/admin中,将需要重新定制的文件复制出来,在自己的工程中创建相对应的子目录,在settings.py中注入模板路径,子模板继承子复制的模板添加自己的代码。

自定义登录页面

原始文件路径:

E:WorkSpacepython_xnhjHelloRestLibsite-packagesdjangocontribadmin	emplatesadminlogin.html

templates文件夹中新建adminlogin.html

Django后台模板

https://github.com/vinta/awesome-python#admin-panels

博观而约取,厚积而薄发
原文地址:https://www.cnblogs.com/leoych/p/15339623.html