2016-08-30 10 views
1

ジャンゴで現在選択されている外部キーを編集許可:はだけなので、現在、私はこのようなものを持って管理

モデル:

class ConfirmEmail(models.Model): 
    report = models.ForeignKey(Report) 
    owner = models.CharField(max_length = 100) 
    emails = models.ManyToManyField(Sdm) 

管理者:

@admin.register(ConfirmEmail) 
class ConfirmEmailAdmin(admin.ModelAdmin): 
    change_form_template = 'admin/phone/index.html' 
    readonly_fields = ('owner',) 
    filter_horizontal = ('emails',) 
    list_display = ('owner','report') 

私はコードでこれらのオブジェクトを作成します - 私はレポートオブジェクトを設定することを意味します。しかし、私がDjango adminで望むものは、ユーザーがそのレポートオブジェクトを編集できるようにすることができますが、その1つのみのセットだけです。彼らはそれを変更することが許されるでしょう(ドロップダウンメニューがそこにないことを願っています)ので、鉛筆のアイコンはまだそこに残っていますが、 "+"アイコンのようなものはなくなります。

これはユーザーがすべてのレポートを編集できないというわけではなく、ConfirmEmail Adminにある特定のレポートのみを表示できることです。

私はこれを打ちのめしてしまって、動作させるようには見えません。

私は現在のレポートフォームをConfirmEmailフォームに埋め込んでおきたいと思っていますが、どうやってそれをやっていくのか分かりません。

答えて

0

レポートモデルのモデル管理を導入してから、has_add_permission ReportAdminの機能を上書きする必要があります。

@admin.register(Report) 
class ReportAdmin(admin.ModelAdmin): 

    # whatever you want here 

    def has_add_permission(self, request): 
     return False 

また/削除ページではJavaScriptを使用して+ボタンを無効にするが、彼は追加のURLを知っている、またはJavaScriptを無効にした場合、ユーザーが損害を引き起こす可能性があることを知ることができます。

+0

+を削除するにはjavascriptを使用する必要があります。私は決してレポートを追加することを望んではいません。機能はまだそこにあります。私の主なことは、確認の電子メール管理ページにレポート全体を表示して、そこでレビューできるようにしたかったことです。 – khancock

関連する問題