如何在 admin.py 自定义后继续使用 3rd 应用程序管理模板?

How to keep using 3rd app admin templates after customizations of admin.py?

我使用 django-photologue 并扩展了它:

# gallery.models.py
from photologue.models import Photo
from profiles.models import UserProfile

class PhotoExtended(Photo):
    user = models.ForeignKey(UserProfile, verbose_name=_('user'), on_delete=models.CASCADE)

# gallery.admin.py
from photologue.admin import PhotoAdmin as PhotoAdminDefault
from photologue.models import Photo

from .models import PhotoExtended

class PhotoAdmin(PhotoAdminDefault):
    save_on_top = True

admin.site.unregister(Photo)
admin.site.register(PhotoExtended, PhotoAdmin)

Photologue 具有上传带照片的 zip 文件的功能,可以使用管理员中的附加按钮来完成。在我修改之后这个按钮消失了。

是否可以使用本机 photologues 管理模板以避免将它们复制粘贴到我的应用程序的模板文件夹中?在 INSTALLED_APPS photologue 中高于我的 gallery 应用程序

Herephotologues 管理模板。

在路径templates/admin/photologue/photo/change_list.html中,部分photo对应于Photo模型。您对该模型进行了子类化。新模型名称是 PhotoExtendedtemplates/admin/photologue/photo_extend/change_list.html 中没有模板。

change_list.html 从 photologue 应用程序复制到您自己的(应用程序)模板文件夹中。例如:project/app/templates/admin/photologue/photo_extend/change_list.html.

或者,您也可以只创建一个新文件并使用包含旧模板:

# project/app/templates/admin/photologue/photo_extend/change_list.html
{% include 'admin/photologue/photo/change_list.html' %}

更新:另一种方法是设置(其中一个)BaseModelAdmin 属性:

# Custom templates (designed to be over-ridden in subclasses)
add_form_template = None
change_form_template = None
change_list_template = None
delete_confirmation_template = None
delete_selected_confirmation_template = None
object_history_template = None