相关文章推荐
旅途中的柿子  ·  Error Installing ...·  2 年前    · 
怕考试的日光灯  ·  php - mysql ...·  2 年前    · 

在后台中查看数据

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):
# 注册管理类
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',
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',
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
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后台模板

github.com/vinta/aweso…

分类:
后端
标签: