在 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