2011-12-30 20 views
6

django-adminインターフェイスで特定のモデルのいくつかの外部キーフィールドでプラス記号を非表示にしたいと思っています。それが可能だ?Django admin、特定の外部キーフィールドにプラス記号+ hide

ありがとうございます!

+1

この質問には非常に良い回答[here](http://stackoverflow.com/a/17348422/1378264)と重複しています。 –

答えて

2

美容目的で非表示にしたい場合は、この '+'記号を隠すJavascriptスクリプトを使用します。

docsに記載されているように、Mediaインナークラスを使用してカスタムJavascriptソースをAdmin Modelformに追加できます。このような何か:

class MyModelAdmin(admin.ModelAdmin): 
    class Media: 
     js = ("js/hide_myfield_addlink.js",) 

JavaScriptソースのようなものになります。これらの管理ユーザーは、このようなモデルを追加することはできません場合は、それらを与えていない、一方

/* file: hide_myfield_addlink.js */ 
django.jQuery(document).ready(function() { 
    django.jQuery("#add_id_myfield").hide(); 
}); 

をそれらを追加するための許可。これらの追加リンクは決して表示されません。

3

+は、その外部キーのモデルを管理者に追加することができ、ユーザーがそのモデルに対して持つ権限に基づいている場合に追加されます。ユーザーがこれらのタイプのモデルを追加できないようにする必要がある場合は、外部キーのModelAdmin(つまり、プラス記号で追加できるようにする)のhas_add_permissionをオーバーライドし、適切な条件でFalseを返します。 +は、許可されていないユーザーはなくなります。

関連する問題