[英]Making a field readonly in Django Admin, based on another field's value
如何根据来自另一个字段的值在Django Admin中创建一个只读或不可编辑的字段? 我使用了readonly_fields=('amount',)
但这不会解决我的问题,因为我需要根据另一个字段来管理它。
您可以覆盖admin的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
从另一个填写一个领域,你需要一个添加prepopulated_fields
属性相关ModelAdmin
类。 例如:
class PostAdmin(admin.ModelAdmin):
prepopulated_fields = {"slug": ("title",)}
相关文档可在此处找到。
但是,在我正在使用的django版本(1.3)中,当使用readonly_fields
时,这似乎会产生错误。
在类的主体中声明任何永久readonly_fields,因为将从验证中访问readonly_fields类属性
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.