2011-07-04 10 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"。残念ながら、parentは同じテンプレートなので、テンプレートの継承ループになります。 Manageoverはスタックオーバーフローエラーのいくつかの変形で終了します...

元の "registration/logged_out.html" - > "admin/base_site.html"の親を拡張することで簡単に問題を回避できます。 I:

{% 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

あなたは少し間違いがあります。 "登録/ logger_out.html" musl "登録/ logged_out.html" – SkyFox

+0

@SkyFoxに感謝 - 固定 – Munhitsu

1

テンプレートのインポートループが発生しています。テンプレートローダは、Djangoがインストールされている場合はいつでも、ベーステンプレートフォームをロードしません。なぜなら、あなたはそのテンプレートをプロジェクトのテンプレートフォルダに持っているからです。

Djangoがインストールされている場所からプロジェクトのテンプレートフォルダにログアウトテンプレートをコピーする必要があると思います。残念ながら、それがうまくいくような唯一の方法です。この方法は、Django管理用テンプレートに更新が加えられた場合は、変更したテンプレートに手動で適用する必要があることを意味します。

関連する問題