在 Django 模型中使用自己的字段定义其他字段
Using own field to define others in Django Models
如果我想在一个字段中设置一个默认值,并且该值是从同一模型的另一个字段派生的。怎么能做这样的事情:
class MyModel(models.Model):
field_1 = models.CharField()
field_2 = models.Charfield(defualt=field_1 + 'extra info')
在这种情况下您不能使用 default
。为此,您可以使用模型的保存方法:
class MyModel(models.Model):
field_1 = models.CharField(max_length=80)
field_2 = models.Charfield(max_length=80)
def save(self, *args, **kwargs):
#Here you can have all kinds of validations you would need
self.field_2 = self.field_1 + "extra info"
super(MyModel, self).save(*args, **kwargs)
现在,如果您愿意,可以从 forms/modelforms hide/exclude field_2
。
如果我想在一个字段中设置一个默认值,并且该值是从同一模型的另一个字段派生的。怎么能做这样的事情:
class MyModel(models.Model):
field_1 = models.CharField()
field_2 = models.Charfield(defualt=field_1 + 'extra info')
在这种情况下您不能使用 default
。为此,您可以使用模型的保存方法:
class MyModel(models.Model):
field_1 = models.CharField(max_length=80)
field_2 = models.Charfield(max_length=80)
def save(self, *args, **kwargs):
#Here you can have all kinds of validations you would need
self.field_2 = self.field_1 + "extra info"
super(MyModel, self).save(*args, **kwargs)
现在,如果您愿意,可以从 forms/modelforms hide/exclude field_2
。