Django - 管理员 - 如何覆盖模型代理的change_list模板?

Gre*_*reg 3 python django django-templates django-admin

我制作了一个简单的Django应用程序.我有一个模型"访客".我的目标是在Django管理员中出现两个表.一个与所有访客一起,一个只有今天的访客.

我按照这些说明完成了以下代码的所有工作.但我不知道如何仅仅覆盖仅为VisitorExpectedTodayProxy的change_list.html.

我尝试按照这里说明进行操作,然后在Site/templates/admin/VisitorLog/VisitorExpectedTodayProxy/change_list.html那里创建并进行了更改,但似乎并未将其更改.

Models.py

class Visitor(models.Model):
    visit_datetime = models.DateTimeField(null=True)
    visitor_name = models.CharField(max_length=500)

#Make dummy models for different object views in admin interface
class VisitorExpectedTodayProxy(Visitor):
    class Meta:
        proxy=True
        verbose_name = "Visitor"
        verbose_name_plural = "Today's Visitors and Regular Visitors"
Run Code Online (Sandbox Code Playgroud)

Yuj*_*ita 5

尝试小写文件夹名称。

请注意,管理应用程序在查找目录时会将模型名称小写,因此,如果要在区分大小写的文件系统上运行应用程序,请确保以全小写形式命名目录。

另外,您是否已检查过确保模板目录正常工作的清单?TEMPLATE_DIRS需要包含您的模板文件夹,并确保filesystem模板加载器位于app_directories加载器之前。

最后,您可以通过 ModelAdmin 属性指向模板: http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.change_list_template


Thi*_*Lam 5

除了将您的路径缩小到以下外:

templates/admin/visitorlog/visitorexpectedtodayproxy/change_list.html
Run Code Online (Sandbox Code Playgroud)

您的change_list.html的内容应该扩展默认的admin/change_list:

{% extends "admin/change_list.html" %}
Run Code Online (Sandbox Code Playgroud)

您可以通过查看django源代码中的各种块模板来自定义此页面的不同部分:

django/contrib/admin/templates/admin/change_list.html
Run Code Online (Sandbox Code Playgroud)