【问题标题】:Edit Django admin logout template?编辑 Django 管理员注销模板?
【发布时间】:2011-09-28 04:32:21
【问题描述】:

我想对 Django 管理员注销页面进行非常的小改动。

我知道如何使用模板来覆盖 Django 管理模板,所以我尝试对注销文件做同样的事情。

我在templates/registration/logged_out.html 设置了一个新模板。该文件内容如下:

{% extends "registration/logged_out.html" %}
{% block content %}
<p>Thanks for using the site.</p>
<p><a href="../">Log in again</a></p>
<p><a href="/">Return to the home page</a></p>
{% endblock %}

但是,肯定有问题,因为当我尝试注销管理员时,站点停止运行。

我发现 Django docs page 建议使用 AdminSite 来更改基本模板和注销页面,但是对于如此微小的更改真的有必要吗?

如果是这样,有人有我如何设置注销模板的示例吗?我被 AdminSite 的说明吓到了。

谢谢。

【问题讨论】:

  • “网站停止运行”是什么意思?
  • 对不起,应该更清楚。我正在使用manage.py 运行该站点,而manage.py 只是终止。如果我可以更有用地调试,请告诉我!

标签: django django-admin


【解决方案1】:

您将获得一个模板导入循环。无论您安装了 Django,模板加载器都不会加载基本模板表单,因为它会看到您在项目的模板文件夹中拥有该模板。

我认为您需要将安装 Django 的注销模板复制到项目的模板文件夹中。不幸的是,这似乎是唯一可行的方法。此方法还意味着,如果对 Django 管理模板进行了更新,您必须手动将它们应用到修改后的模板。

【讨论】:

    【解决方案2】:

    manage.py runserver 终止的原因是继承循环。

    Django 加载“registration/logged_out.html”并尝试加载它的父项:“registration/logged_out.html”。不幸的是 parent 是同一个模板,所以我们最终进入了模板继承循环。 Manage.py 将因堆栈溢出错误的某些变体而终止...

    您可以通过扩展原始“registration/logged_out.html”->“admin/base_site.html”的父级来轻松解决此问题。即:

    {% extends "admin/base_site.html" %}
    {% load i18n %}
    
    {% block breadcrumbs %}<div class="breadcrumbs"><a href="../">{% trans 'Home' %}</a></div>{% endblock %}
    
    {% block content %}
    <p>Thanks for using the site.</p>
    <p><a href="../">Log in again</a></p>
    <p><a href="/">Return to the home page</a></p>
    {% endblock %}
    

    【讨论】:

    • 你的回答有一点错误。 “registration/logger_out.html”必须是“registration/logged_out.html”
    猜你喜欢
    • 2010-12-12
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    • 2018-08-22
    • 2012-07-18
    相关资源
    最近更新 更多