【问题标题】:Custom templates for custom AdminSite Django自定义 AdminSite Django 的自定义模板
【发布时间】:2019-04-03 19:07:20
【问题描述】:

我有两个管理网站,我想在这两个网站上使用不同的自定义模板 这是我的 admin.py 文件:

from django.contrib import admin
from django.contrib.admin import AdminSite
from .models import Equipo

@admin.register(Equipo)
class EquipoAdmin(admin.ModelAdmin):
    list_display = ('codigo', 'nombre', 'contador', 'unidades')

class AdminMantenimiento(AdminSite):
    site_header = "MANTENIMIENTO"

class EquipoAdminMantenimiento(admin.ModelAdmin):
    list_display = ('codigo', 'nombre')

admin_site = AdminMantenimiento(name='Administrador Mantenimiento')
admin_site.register(Equipo, EquipoAdminMantenimiento)

这是我的 urls.py 文件:

from django.contrib import admin
from django.urls import path
from Mantenimiento.admin import admin_site

urlpatterns = [
    path('admin/', admin.site.urls),
    path('admin2/',admin_site.urls)
]

如果我按照Django documentation 覆盖模板,更改将应用​​于两个 AdminSites。如何为扩展 AdminSite 的类设置自定义模板?

【问题讨论】:

    标签: python django


    【解决方案1】:

    我能想到的唯一方法是明确覆盖您要自定义的管理页面的 url,并将其指向不同的模板。例如在 admin2/ 中自定义模板,而不是在 admin1/ 中自定义模板

    from django.contrib import admin
    from django.urls import path
    from Mantenimiento.admin import admin_site
    from app.views import *
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('admin2/app/model', TemplateView.as_view(template_name='model_admin.html')),
        path('admin2/', admin_site.urls)
    ]
    

    这只有在更具体的 url 定义 (admin2/app/model) 出现在不太具体的定义 (admin2/) 之前才有效

    【讨论】:

    • 不是我想要的,因为这样我会失去所有的管理功能
    猜你喜欢
    • 1970-01-01
    • 2011-03-04
    • 1970-01-01
    • 2015-11-06
    • 2013-09-29
    • 2017-02-20
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多