您当前的位置: 首页 >  彭世瑜 django

DjangoAdmin后台的一些设置

彭世瑜 发布时间:2019-09-15 11:16:45 ,浏览量:2

后台汉化

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


添加后台logo

修改 /templates/admin/base_site.html

{% block branding %}
 

    {{ site_header|default:_('Django administration') }}
 
{% 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(
            '{}',
            color,
            self.sex,
        )

admin.py修改显示

list_display = ('name', 'sex_color', 'age')

参考: Django(五)后台显示自定义

关注
打赏
1688896170
查看更多评论

彭世瑜

暂无认证

  • 2浏览

    0关注

    2727博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0514s