基于另一个字段';在Django Admin中使字段只读;s值
如何根据另一个字段的值使Django Admin中的字段为只读或不可编辑?基于另一个字段';在Django Admin中使字段只读;s值,django,django-models,django-forms,Django,Django Models,Django Forms,如何根据另一个字段的值使Django Admin中的字段为只读或不可编辑? 我使用了readonly\u fields=('amount',),但这无法解决我的问题,因为我需要基于另一个字段来管理它。您可以覆盖管理员的获取只读\u字段的方法: class MyAdmin(admin.ModelAdmin): def get_readonly_fields(self, request, obj=None): if obj and obj.another_field ==
我使用了
readonly\u fields=('amount',)
,但这无法解决我的问题,因为我需要基于另一个字段来管理它。您可以覆盖管理员的获取只读\u字段的方法:
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
要从一个字段填写另一个字段,您需要向相关的ModelAdmin
类添加一个prepopulated\u fields
属性。例如:
class PostAdmin(admin.ModelAdmin):
prepopulated_fields = {"slug": ("title",)}
可以找到相关文档
但是,在我目前使用的django版本(1.3)中,当使用只读字段时,这似乎会产生一个错误。在类的主体中声明任何永久只读字段,因为只读字段类属性将从验证中访问这可以在维护字段顺序时执行吗?