別のフィールドの値に基づいて、Django Adminのフィールドを読み取り専用または編集不可にする方法は?私は使用readonly_fields=('amount',)
しましたが、別のフィールドに基づいて管理する必要があるため、これで問題が解決することはありません。
質問する
19369 次
3 に答える
28
管理者のget_readonly_fields
メソッドをオーバーライドできます。
class MyAdmin(admin.ModelAdmin):
def get_readonly_fields(self, request, obj=None):
if obj and obj.another_field == 'cant_change_amount':
return self.readonly_fields + ('amount',)
return self.readonly_fields
于 2012-07-22T15:38:35.890 に答える
1
あるフィールドを別のフィールドに入力するには、関連するクラスprepopulated_fields
に属性を追加する必要があります。ModelAdmin
例えば:
class PostAdmin(admin.ModelAdmin):
prepopulated_fields = {"slug": ("title",)}
関連するドキュメントはここにあります。
ただし、現在使用しているdjangoのバージョン(1.3)では、を使用するとエラーが発生するようreadonly_fields
です。
于 2012-07-22T23:03:31.360 に答える
0
readonly_fieldsクラス属性は検証からアクセスされるため、クラスの本体で永続的にreadonly_fieldsを宣言します。
于 2012-10-09T06:50:47.863 に答える