繁体   English   中英

在Django Admin中根据另一个字段的值创建一个readonly字段

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM