zoukankan      html  css  js  c++  java
  • 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、效果

  • 相关阅读:
    【javascript基础】【转】各浏览器对页面外部资源加载的策略
    【javascript基础】【转】javascript模块化、模块加载器初探
    【javascript基础】js线程机制【转】
    【css】【转】那些年我们一起清除过的浮动
    IL入门之旅(三)——Dump对象
    学习TPL(一)
    弱引用应用的注意点
    IL入门之旅(二)——动态包装
    学习TPL(二)
    IL之旅(前言)
  • 原文地址:https://www.cnblogs.com/Erick-L/p/7100129.html
Copyright © 2011-2022 走看看