Django默认后台管理

本文介绍了如何在Django中创建管理员账号,注册和管理模型,自定义后台展示,包括设置每页显示条目数量、操作选项、自定义列、过滤器、搜索框等。同时讲解了如何调整编辑页面字段顺序,以及如何使用InlineModelAdmin进行关联模型的编辑,如TabularInline和StackedInline的使用。
  • 创建管理员用户名和密码

    python manage.py createsuperuser

  • 注册模型类

    admin.py

    admin.site.register(模型类)

  • 定义模型管理类

    admin.py class 模型类Admin(admin.ModelAdmin):

    • 注册

      admin.site.register(模型类,模型管理类)

      @admin.register(模型类)

    • 定义每页显示条目数量

      list_per_page = 10

    • ‘操作选项’位置

      actions_on_top=True # 顶部显示

      actions_on_bottom=True # 底部显示

    • 显示自定义列

      list_display=[字段1, 字段2, ...,或有返回值方法名]

      有返回值方法定义在模型类中:

      def t(self): return self.title

      t.admin_order_field='title' # 添加方法的排序功能

    • 列标题

      模型类中:

      title.short_description='自定义列标题'

    • 过滤器

      list_filter=['字段']

    • 搜索框

      search_fileds=['字段']

    • 编辑页字段顺序调整

      fields=['字段2','字段1']

    • 分组显示

      fieldset=(('组1标题',{'fields':('字段1','字段2')}), ('组2标题',{'fields':('字段3','字段4')}),)

  • 修改默认显示对象

    模型类:

    def __str__(self): return self.字段.encode('utf-8')

  • 编辑页显示关联对象

    • InlineModelAdmin:表示在模型的编辑页面潜入关联模型的编辑
    • TabularInline: 以表格的形式嵌入
    • StackedInline: 以块的形式嵌入
    
    # admin.py
    
    class 模型类StackedInline(admin.StackedInline):
        model=子对象模型类名
        extra=2   # 额外编辑子对象个数
    
    class 模型管理类(admin.ModelAdmin):
        inlines = [嵌入编辑类(上边类名)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值