后台汉化
settings.py
LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai'
后台标题和名称的修改
admin.py
admin.site.site_header = '后台管理' admin.site.site_title = '后台管理title'
favicon.ico配置
找到django安装目录
$ python -c "import django;print(django.__path__)"
将默认模板contrib/admin/templates/admin/base_site.html
复制到/templates/admin/base_site.html
<link rel="icon" type="image.png" href="/static/img/favicon.ico">
添加后台logo
修改 /templates/admin/base_site.html
{% block branding %} <img src="/static/img/xiaomi_logo.png" style="line-height: 40px; width: 40px;height: 40px;float: left;"> <h1 id="site-name" style="float: left;"> <a href="{% url 'admin:index' %}">{{ site_header|default:_('Django administration') }}</a> </h1> {% endblock %}
查看sql执行日志
LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', }, }, 'loggers': { 'django.db.backends': { 'handlers': ['console'], 'propagate': True, 'level': 'DEBUG', }, } }
后台显示数据
admin.py
from django.contrib import admin # Register your models here. from login.models import Members from login.models import Types # 装饰器注册 @admin.register(Members) class MembersAdmin(admin.ModelAdmin): # listdisplay设置要显示在列表中的字段(id字段是Django模型的默认主键) list_display = ('name', 'sex', 'age', 'TEL', 'member_type') # list_per_page设置每页显示多少条记录,默认是100条 list_per_page = 50 # ordering设置默认排序字段,负号表示降序排序 # ordering = ('-name',) # 操作项功能显示位置设置,两个都为True则顶部和底部都显示 actions_on_top =True actions_on_bottom = True # 操作项功能显示选中项的数目 actions_selection_counter = True # 字段为空值显示的内容 empty_value_display = ' -空白- ' # list_editable 设置默认可编辑字段(name默认不可编辑,因为它是一个链接,点击会进入修改页面) list_editable = ['TEL', 'member_type',] # fk_fields 设置显示外键字段 fk_fields = ('member_type',) # 过滤器功能及能过滤的字段 list_filter = ('name', 'member_type') # 搜索功能及能实现搜索的字段 search_fields = ('name', 'TEL', ) # 注册函数注册 admin.site.register(Types)
显示颜色
models.py
from django.db import models from django.utils.html import format_html class Members(models.Model): name = models.CharField(max_length=20) sex = models.CharField(max_length=2) age = models.IntegerField(null=True) def sex_color(self): if self.sex == '男': color = '#00F' elif self.sex == '女': color = '#F00' else: color = '' return format_html( '<span style="color: {}">{}</span>', color, self.sex, )
admin.py修改显示
list_display = ('name', 'sex_color', 'age')
参考: