2016-12-01 10 views
0

管理者のインデックスページにリンクを追加したいが、そこにはモデルがリストアップされているが、新しいモデルを作成したくない。それはカスタムビューです。adminインデックスの "fake"モデルエントリを追加する

これは私が望む結果です。この場合、リーダーボードは、/admin/leaderboardsを指す必要があります。 コードおよびユーザーは有効なモデルです。

desired result

私は、次のテンプレートを使用して、to the documentationよると、index.htmlページを上書きしてみました。

{% extends "admin/index.html" %} 

{% block content %} 

    {{ block.super }} 

    <div class="app-{{ app.app_label }} module"> 
    <table> 
     <tr> 
      <th scope="row"><a href="leaderboards">Leaderboards</a></th> 
      <td></td> 

     </tr> 
    </table> 
    </div> 

{% endblock %} 

しかし、これが結果です:

my approach

私は完全なindex.htmlをを交換し、そこに特定の行をハードコーディングすることができます知っているが、多くの人はそれをお勧めしません。何か別の選択肢はありますか?

https://docs.djangoproject.com/en/1.10/ref/contrib/admin/#django.contrib.admin.AdminSite.index_template

答えて

1

ジャンゴactually recommendsappフォルダにindex.htmlを、およびハードコードリンクをコピー&ペーストします。

同様の注意点として、 のDjango管理者インデックスページのルックアンドフィールをカスタマイズしたい場合があります。

デフォルトでは、INSTALLED_APPSのすべてのアプリは、 が管理アプリケーションにアルファベット順に登録されています。 は、レイアウトを大幅に変更したい場合があります。結局のところ、インデックス はおそらく管理者にとって最も重要なページであり、使いやすいのは であるはずです。

カスタマイズするテンプレートはadmin/index.htmlです。 (前のセクションで admin/base_site.htmlと同じ操作を行います。 デフォルトディレクトリからカスタムテンプレートディレクトリにコピーしてください)。ファイル を編集すると、というapp_listという名前のテンプレート変数が使用されていることがわかります。その変数 には、インストールされているすべてのDjangoアプリが含まれています。それを使用する代わりに、 あなたはどのような方法でオブジェクト固有の管理ページへのリンクをハードコードすることができます あなたが最適だと思います。

+0

これが答えです。 –

関連する問題