2011-07-04 133 views
4

我想做一個非常小改變到Django管理員註銷頁面。編輯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的說明。

謝謝。

+0

「網站停止運行」是什麼意思? –

+0

對不起,應該更清楚了。我正在使用'manage.py'和'manage.py'運行該站點,只是終止。請讓我知道,如果我可以更有用地進行調試! – Richard

回答

5

manage.py runserver終止的原因是一個繼承循環。

Django加載「registration/logged_out.html」,並嘗試加載它的父級:「registration/logged_out.html」。不幸的是,父母是相同的模板,所以我們最終在模板繼承循環。 Manage.py將終止一些堆棧溢出錯誤的變體...

您可以通過擴展原始「registration/logged_out.html」 - >「admin/base_site.html」的父項來輕鬆地避免此問題。 I.e:

{% 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 %} 
+0

非常感謝! – Richard

+0

你有一個小錯誤在你回答。 「registration/logger_out.html」musl是「registration/logged_out.html」 – SkyFox

+0

謝謝@SkyFox - 已修復 – Munhitsu

1

您正在獲取模板導入循環。無論您安裝了Django,模板加載器都不會加載基本模板表單,因爲它會在您的項目模板文件夾中看到該模板。

我認爲您需要將註銷模板從您安裝Django的位置複製到項目的模板文件夾中。不幸的是,這似乎是唯一可行的方法。此方法還意味着,如果對Django管理模板進行了更新,則必須手動將它們應用於修改過的模板。