2016-09-05 1 views
0

管理者の「オブジェクトの追加」アクションを編集する必要があります。オブジェクトを追加するために必要なロジックが複雑すぎて、管理者が管理することができないため、ユーザーをカスタム原因にリダイレクトする必要があります。だから、どうすればこのことが可能になるのでしょうか?すなわち:Django。モデルのアクションをカスタマイズする

enter image description here

絵はジャンゴ・スーツの管理を示しているが、問題は同じです。そのボタンをカスタムURLにリダイレクトするにはどうすればよいですか?または、カスタムURLにリダイレクトする同様のボタンを作成するにはどうすればよいですか(デフォルトの作成を無効にし、カスタムボタンのみを残すこともできます)。

答えて

1

change_list_template html、ブロックobject-tools-itemsを上書きします。追加ボタンが置かれている場所です。

class MyModelAdmin(admin.ModelAdmin): 
    change_list_template = 'change_list.html' 

あなたchange_list.html

{% extends "admin/change_list.html" %} 
{% load i18n admin_static admin_list %} 

{% block object-tools-items %} 
     {% if has_add_permission %} 
     <li> 
      <a href="your/custom/url" class="addlink"> 
      {% blocktrans with cl.opts.verbose_name as name %}Add {{ name }}{% endblocktrans %} 
       </a> 
     </li> 
     {% endif %} 
{% endblock %} 

であなたはTEMPLATE_DIRSオプションに含まれている任意のディレクトリに新しいHTMLを追加する必要があります。しかし、あなたはあなたのモデルのアプリの中でそれを行う必要があります。

-app 
    -templates 
     -admin 
       change_list.html 

上記のディレクトリをTEMPLATE DIRSパスに追加します。

+0

ありがとうございます。簡単な質問ですが、 'change_list.html'ファイルはどこに置くべきですか? – alejoss

+0

@alejoss私の答えをチェックしてください。私はそれを更新しました – levi

+0

ありがとう、それは働いた。 – alejoss

関連する問題