2012-04-07 8 views
22

モデルなしで管理パネルのカスタムページを作成したいと思います。最初のiについては、フォルダに突出するようにindex.htmlをコピーします。次に、アプリケーションに追加django adminのカスタムページを作成するにはどうしたらいいですか?

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> 

これは良い作品、私は新しいページ/テンプレート/管理/環境設定/プリファレンスを作成します.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 %} 

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

+0

どのURLにURLを追加しましたか? Djangoの管理者のより一般的な正規表現が '/ admin/preferences'を捕捉してURL正規表現に到達しないことがあります。 –

+0

私は/mysite/mysite/urls.pyにu​​rls.pyを1つしか持っていないので、私はurlsパターンにエラーがないので、これはurlでエラーではないと私は思う。 – Gr1N

+0

この場合、エラーメッセージは表示されません。あなたは、その場合に管理ページを取得するかどうかを確認するためにURLを他のものに変更しようとしましたか?たとえば、 '^ testadmin/preferences/$'? –

答えて

21

あなたは、管理者自身の前に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の管理者によって処理されることはありませんこの方法です。

+2

ページが保護されているか、公開されていますか? –

12

あなたはadminのget_urlsを使用する必要があります。

+3

'get_urls'は、' ModelAdmin'のメソッドであり、 'Model'が必要ですが、OPは"モデルなしで**管理パネル**のカスタムページを作成する "ことを特に望んでいます。 (重点が追加されました) – Louis

5

ここでは次のオブジェクトの詳細ページの右上にある「履歴」ボタンにボタンからリンクされたカスタムの管理ページの(ジャンゴ1.6のように)必要とされなければならないすべてのものの例です:

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

関連する問題