求助:为Django模型类自定义Zip字段设置verbose_name为CEP
为Django自定义Zip字段设置verbose_name
你可以通过两种方式为自定义的Zip字段设置verbose_name="CEP":
方法一:直接在字段实例化时传入参数
因为自定义的Zip类继承自models.Field,父类本身支持verbose_name参数,无需修改自定义字段类,直接在实例化时传入即可:
class Address(models.Model): class Zip(models.Field): def db_type(self, connection): return 'char(8)' zip = Zip(verbose_name="CEP") address = models.CharField(max_length=200, verbose_name="Rua") # ... 其他字段
方法二:重写字段类的构造函数(如需扩展参数)
如果后续需要给自定义字段添加更多自定义逻辑,可以重写__init__方法,确保将verbose_name传递给父类构造函数:
class Address(models.Model): class Zip(models.Field): def __init__(self, verbose_name=None, name=None, **kwargs): # 将参数传递给父类构造函数 super().__init__(verbose_name=verbose_name, name=name, **kwargs) def db_type(self, connection): return 'char(8)' zip = Zip(verbose_name="CEP") address = models.CharField(max_length=200, verbose_name="Rua") # ... 其他字段
两种方式都能让Zip字段的verbose_name生效,在Django后台管理界面或表单中会显示为"CEP"。
内容的提问来源于stack exchange,提问作者Carlos Rocha
相关产品推荐
相关产品推荐

