Django 个性化管理员站点

from django.contrib import admin

# Register your models here.
from .models import Moment

class MomentAdmin(admin.ModelAdmin):
    # 配置字段分组,美化管理配置界面
    fieldsets = (
        ('消息内容',{
            'fields':('content','kind'),
        }),
        ('用户信息',{
            'fields':('user_name',),
        }),
    )
    empty_value_display = '空值' #设置表级别指定空值显示方式
    Moment.user_name.empty_value_display = '未设置标题' # 可以设置字段配置

# fields设定管理界面字段
class MomentAdmin1(admin.ModelAdmin):
    fields = ('content','kind')

class MomentAdmin2(admin.ModelAdmin):
    fields = ('user_name',)

admin.site.register(Moment,MomentAdmin)

结果

模板

默认管理员站点文件在Django/contrib/admin/templates/admin

可以继承其中任意文件,来管理定制自己的管理站点

1、定义子模板文件路径

2、修改项目settings.py

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')] #本行中的路径为新加项
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

3、开发子模板文件

{% extends 'admin/login.html' %}

{% block content_title %}
欢迎登录 哈哈哈 的管理网站
{% endblock %}

站点

1、app/admin.py 定义AdminSite子类

class MyAdminSite(admin.AdminSite):  # 定义AdminSite子类
    site_header = '哈哈的管理网站' #配置自定义属性

admin_site = MyAdminSite()# 实例化一个子类
admin_site.register(Moment,MomentAdmin)# 用子类实例注册需要管理的模型类

2、修改项目djangosite/urls.py

from django.conf.urls import include

from app.admin import admin_site
urlpatterns = [
    url(r'^admin/', admin_site.urls), #替换之前的url.admin.urls
    url(r'^app/', include('app.urls')),
]

3、效果

原文地址:https://www.cnblogs.com/Erick-L/p/7100129.html