44

モデルなしで管理パネルのカスタム ページを作成したい。まず、index.html をプロジェクト フォルダーにコピーします。

mysite/
    templates/
        admin/
            index.html

次に、アプリに追加してコードをブロックします。

<div class="module">
    <table summary="{% blocktrans with name="preferences" %}Models available in the preferences application.{% endblocktrans %}">
        <caption><a href="preferences" class="section">{% blocktrans with name="preferences" %}Preferences{% endblocktrans %}</a></caption>
            <tr>
                <th scope="row"><a href="preferences">Preferences</a></th>
                <td><a href="preferences" class="changelink">{% trans 'Change' %}</a></td>
            </tr>
    </table>
</div>

これはうまくいきます。次に、新しいページ /templates/admin/preferences/preferences.html を作成し、urls.py に追加します。

url(r'^admin/preferences/$', TemplateView.as_view(template_name='admin/preferences/preferences.html')),

そして、preferences.html にコードを追加します。

{% extends "admin/base_site.html" %}
{% block title %}Test page{% endblock %}

実行すると、「要求された管理ページが存在しません。」というエラー メッセージが表示されます。私は何を間違っていますか?

4

7 に答える 7

35

管理者自体の URL パターンの前に、管理者の URL を追加する必要があります。

urlpatterns = patterns('',
   url(r'^admin/preferences/$', TemplateView.as_view(template_name='admin/preferences/preferences.html')),
   url(r'^admin/', include('django.contrib.admin.urls')),
)

この方法では、URL は Django の管理者によって処理されません。

于 2012-04-07T11:41:06.460 に答える
12

管理者のget_urlsを使用する必要があります。

于 2012-11-11T23:04:51.447 に答える
5

以下は、オブジェクトの詳細ページの右上にある [履歴] ボタンの横にあるボタンからリンクされるカスタム管理ページに (Django 1.6 の時点で) 必要なすべての例です:

https://gist.github.com/mattlong/4b64212e096766e058b7

于 2014-09-19T20:16:34.410 に答える