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="转介绍")
标签:Admin,price,register,list,site,Django,十三,models,admin
From: https://www.cnblogs.com/zhlforhe/p/18013521