使用自己的字段在Django模型中定义其他字段

时间:2015-01-28 19:56:51

标签: python django django-models

如果我想在字段中设置默认值,并且该值是从同一模型中的另一个字段派生的。怎么能做那样的事情:

class MyModel(models.Model):
     field_1 = models.CharField()
     field_2 = models.Charfield(defualt=field_1 + 'extra info')

1 个答案:

答案 0 :(得分:3)

在这种情况下,您无法使用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)

现在,如果您愿意,可以从表单/模型中隐藏/排除field_2