十三、Django Admin

Django Admin是django项目数据库的一个后台管理工具

一、注册models

项目中,应用创建之后,应用文件夹就有一个admin.py文件。在admin.py中注册需要在admin后台管理的models

from django.contrib import admin
from web import models

admin.site.register(models.Host)
admin.site.register(models.HostGroup)
admin.site.register(models.IDC)
admin.site.register(models.UserProfile)
admin.site.register(models.HostToRemoteUser)
admin.site.register(models.RemoteUser)

二、登录admin

在终端,项目根目录下,运行命令创建superuser:

python manage.py createsuperuser
#设置用户名
#设置密码

访问: ip+端口/admin,在登录页使用创建好的superuser登录admin

三、admin后台的使用

1、在后台,可以新建User,创建后需要勾选Staff Status,用户才可以登录admin;
2、除了Staff Status,User还有更多权限相关可设置,或者设置为Super User;

四、自定义Admin

在admin.py中,继承admin.ModelAdmin来创建某个model的配置类

from django.contrib import admin
from crm import models

class CustomerAdmin(admin.ModelAdmin):
    list_display = ['name', 'source', 'contact_type', 'contact', 'consultant', 'consult_content', 'status', 'date']
    list_filter = ['source', 'consultant', 'status', 'date']
    search_fields = ['contact', 'consultant__name']

admin.site.register(models.CustomerInfo, CustomerAdmin)
class BookAdmin(admin.ModelAdmin):
    list_display = ('id','name','price','pub_date')
    ordering = ("-price",)
    fieldsets = [
        (None,{'fields':['name']}),
        ('price information',{'fields':['price','publish'],'classes':['collapse']}),
    ]

其中:
list_display:设置显示的字段列(多对多字段不可列出)
list_filter:筛选
search_fields:搜索功能
fieldsets:自定义详情页的样式
ordering:排序。例如:ordering = ("price",) 按price排序(升序);
ordering = ("-price",) 在字段前加‘-’为倒序。
另外还有:
list_editable:自定义某列是否可以编辑
filter_horizontal:多对多字段设置filter_horizontal属性,页面样式会变成方便多对多数据量大时的操作
list_per_page: 配置分页,默认=20
等等

五、修改Admin页面语言

LANGUAGE_CODE = 'zh-hans' #设置中文

六、列的别名设置

model定义字段时,设置verbose_name属性

class CustomerInfo(models.Model):
    """客户信息表"""
    ...
    referral_from = models.ForeignKey("self", blank=True,\
                                      null=True, verbose_name="转介绍")
posted @   Bruce_JRZ  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示