2017-12-19 5 views
0

私は外部キーを持つモデルを持っており、管理者はそれらのFKをドロップダウンリストとしてレンダリングします。しかし、それらの中には、関連テーブルの要素の「追加」、「編集」、「削除」のボタンが表示されるものもあれば、表示されないものもあります。私は、フィールド間で何が違うのかを理解することはできません。あるフィールドがレンダリングされ、別のフィールドがレンダリングされるフィールドがあります。Django Admin ForeignKeyフィールドウィジェットのオプションと一貫性のないデフォルト値

私の理想的な状況は、これらのボタンは外部キーに対してをレンダリングしないということです.1つのモデルの編集は、そのエンティティ自体の変更のみに制限されています。

Djangoは最終的にこれらのフィールドにRelatedFieldWidgetWrapperを選択します。このウィジェットでcan_add_relatedcan_change_related、およびcan_delete_relatedを設定することはできますが、これらのフィールドのオプションとしてこれらをすべて一貫性のあるものにする方法は簡単にわかりません。

管理者はどのようにこれらのオプションをオンまたはオフにすることができますか?

答えて

0

モデルAにモデルBの外部キーがあり、モデルAの追加/変更/削除パーマを割り当て、モデルBのpermをそのユーザーに追加し、そのユーザーを使用してadminにログインします。

django\contrib\admin\options.py\line 162

   wrapper_kwargs.update(
        can_add_related=related_modeladmin.has_add_permission(request), 
        can_change_related=related_modeladmin.has_change_permission(request), 
        can_delete_related=related_modeladmin.has_delete_permission(request), 
       ) 

コード:、あなたが唯一の管理パネルでモデルBを追加することができたりRelatedFieldWidgetWrapper .Becauseがcan_xxx_relatedはでパーマでadminにCALされます

関連する問題