django中class字段的详细名称



我需要帮助添加一个详细的名称。

class Address(models.Model) :

class Zip(models.Field):
def db_type(self, connection):
return 'char(8)'
zip            = Zip()
address        = models.CharField(max_length=200, verbose_name="Rua")
.....

需要将ZIP的详细名称放入CEP。

Djangomodels.Field.__init__()verbose_name为参数,您可以在那里设置名称

class Address(models.Model):
class Zip(models.Field):
def __init__(self, max_length=8, *args, **kwargs):
kwargs['verbose_name'] = "Zip code"
self.max_length = max_length
super().__init__(*args, **kwargs)
def deconstruct(self):
name, path, args, kwargs = super().deconstruct()
del kwargs["verbose_name"]
if kwargs.get("max_length"):
del kwargs["max_length"]
return name, path, args, kwargs
def db_type(self, connection):
return 'char(%s)' % self.max_length
zip = Zip()
address = models.CharField(max_length=200, verbose_name="Rua")

来自Django文档

与编写init((方法相反的是编写解构((方法。它在模型迁移过程中用来告诉Django如何获取新字段的实例并将其简化为序列化形式-特别是要传递给init((的参数重新创建。

如果您没有在字段顶部添加任何额外选项继承自,则无需编写新的解构((方法但是,如果您正在更改传入的参数init(((就像我们在HandField中一样(,您需要补充正在传递的值。

最新更新