Django2.0——admin基础介绍

官方文档参考

Django的强大之处之一就是提供了便利的后台站点,在我们刚开始创建这个项目时,他就将这些配置好了。如果你在创建项目时,没有选择默认的项目模板,你就需要手动做如下操作。

  1. 添加 django.contrib.admin 和它的依赖django.contrib.auth、django.contrib.contenttypes、django.contrib.messages、django.contrib.sessions到你的app设置INSTALLED_APPS中去。
  2. 在你的模板配置的OPTIONS属性中添加如下:django.contrib.auth.context_processors.auth和django.contrib.messages.context_processors.messages
  3. 在中间件注册中添加如下:django.contrib.auth.middleware.AuthenticationMiddleware,django.contrib.messages.middleware.MessageMiddleware。
  4. 主url定义路由
    path('admin/', admin.site.urls)

接下来我们创建一个用户来登陆后台站点:输入指令python manage.py createsuperuser,接下来按提示输入账号、密码、邮箱即可。初次登陆进去的界面如下:

接下来我们要做的就是将我们定义好的model导入到后台,方便我们的管理。每个app下,django都为我们生成了一个admin.py文件,我们就可以在这里导入,其方式如下:

from django.contrib import admin
from .models import Student_home
# Register your models here.

admin.site.register(Student_home)

导入模型后,发现模型管理界面不是很人性化,我们可以自定义它。django提供admin.ModelAdmin类,我们可以定义其子类来设置界面的显示方式。常用的类属性如下:

  • list_display:列表形式,用于显示字段

  • list_filter:列表形式,用于过滤字段,过滤框会出现在右侧

  • search_fields:列表形式,用于搜索字段,搜索框会出现在上侧

  • list_per_page:整数形式,表示每页数据量

  • fields:列表形式,只修改的字段

  • fieldsets:列表形式,分组修改字段,这个属性和fields只能同时存在一个

  • list_display_links:列表形式,可使字段可被点击进入编辑界面

  • ordering:列表形式,设置默认排序的字段

  • list_editable:列表形式,设置默认可编辑的字段

  • date_hierarchy:详细时间分层筛选

下面是一个例子:

from django.contrib import admin
from .models import Student_home
# Register your models here.

class Studentadmin(admin.ModelAdmin):
    list_per_page = 5
    fieldsets = [
        ('基本信息',{'fields':['name','age','sex']}),
        ('联系信息',{'fields':['qq','tel']}),
        ('班期信息',{'fields':['period','course']}),

    ]
    list_display = ['name','age','sex','qq','tel','period','course','c_time']
    list_filter = ['sex','period','course']
    search_fields = ['name','qq','tel','c_time']
    list_display_links = ['name','age','sex','qq','tel','period','course','c_time']

admin.site.register(Student_home,Studentadmin) 

注册方式还可以通过装饰器来,如下:

from django.contrib import admin
from .models import Student_home
# Register your models here.
@admin.register(Student_home)
class Studentadmin(admin.ModelAdmin):
    list_per_page = 5
    fieldsets = [
        ('基本信息',{'fields':['name','age','sex']}),
        ('联系信息',{'fields':['qq','tel']}),
        ('班期信息',{'fields':['period','course']}),

    ]
    list_display = ['name','age','sex','qq','tel','period','course','c_time']
    list_filter = ['sex','period','course']
    search_fields = ['name','qq','tel','c_time']
    list_display_links = ['name','age','sex','qq','tel','period','course','c_time']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值