django的admin模块
django的admin模块
前言
网站管理平台是绝大多数应用服务必备的功能,admin 是django自带的一个网站管理平台,它的主要功能就是对数据库的数据进行增上改查的操作。admin网站管理平台只有管理员才能访问。
目录
基本使用
初始化数据库
python manage.py migrate
创建超级管理员
python manage.py createsuperuser
按提示输入用户名、邮箱(可以为空)、密码、确认密码

设置语言,修改setting.py配置
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_TZ = False
访问admin管理平台
访问的方法是直接在浏览器访问:http://localhost:8000/admin

输入超级管理的账号和密码,就可以登录成功了
admin模块的使用
admin.py
from django.contrib import admin
from .models import Project
admin.site.site_header = "工程项目"
admin.site.site_title = "后台管理"
class ProjectAdmin(admin.ModelAdmin):
list_display = ('project_name', "project_type", "project_version")
admin.site.register(Project, ProjectAdmin)
样式设置
样式设置
| 样式变量 | 说明 | 举例 |
|---|---|---|
| list_display | 可显示的数据库字段 | list_display = ['id', 'username'] |
| list_filter | 右边栏过滤器 | list_filter = ['username'] |
| search_fields | 搜索 | search_fields = ['username'] |
| ordering | 排序 | ordering = ['id'] # 反序 -id |
| list_per_page | 每页显示的数据量 | list_per_page = 10 |
| readonly_fields | 只读的字段 | readonly_fields = ['username'] |
| date_hierarchy | 显示的时间分层,仅支持时间类型 | date_hierarchy = '时间字段' |
| list_display_links | 设置可编辑的字段 | list_display_links = ['id', 'username'] |
自定义字段
def times(self, obj):
_time = time.localtime(obj.create_time)
return time.strftime('%Y-%m-%d %H:%M:%S', _time)
# 自定义字段别名
times.short_description = 'xx'
自定义HTML语言
from django.utils.html import format_html
def html_field(self, obj):
return format_html('<a href="{}">跳转</a>', 'https://www.baidu.com')
imageField的显示方法
from django.utils.safestring import mark_safe
def image_data(self, obj):
return mark_safe(u'<img src="%s" width="100px">' % obj.image.url)
二次开发
# 获取数据的函数
def get_queryset(self, request):
result = super(UserAdmin, self).get_queryset(request)
if request.user.superuser:
return result
else:
return result.filter('xx')
# 保存数据的函数
def save_model(self, request, obj, form, change):
if change:
obj.image = 'https://www.baidu.com'
else:
obj.image = 'https://pypi.douban.com'
super(UserAdmin, self).save_model(request, obj, form, change)
浙公网安备 33010602011771号