我有一个这样的模型:
class ModelA(models.Model):
foo = models.CharField(max_length=255)
bar = models.CharField(max_length=255)
现在我想要这样的事情:
class ModelB(models.Model):
aaa = models.ForeignKey(ModelA)
tar = models.Char(Field(max_length=255, default="")
fo2 = models.CharField(max_length=255, default=???)
我希望fo2
从ModelA
获取值,除非提供其他值。
我该怎么做?
答案 0 :(得分:3)
您希望fo2
的默认值等于创建时与aaa
的特定实例相关的内容吗?
这样做的方法是覆盖save
方法
class ModelB(models.Model):
aaa = models.ForeignKey(ModelA)
tar = models.Char(Field(max_length=255, default="")
fo2 = models.CharField(max_length=255)
def save(self, *args, **kwargs):
if self.fo2 is None:
self.fo2 = self.aaa._value_taken_from_Model_A
super(ModelB, self).save(*args, **kwargs)