Django模型字段,具有另一个模型的默认值
我有一个这样的模型:Django模型字段,具有另一个模型的默认值,django,python-3.x,django-models,Django,Python 3.x,Django Models,我有一个这样的模型: 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="")
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=???)
现在我想有这样的东西:
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
中获取一个值,除非提供了其他值
我应该怎么做?是否希望
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)
你不应该那样做。也许考虑重写从模型A中查找兴趣值的MeaveB的保存方法。