Django:如何使用相关模型的字段自动填充字段

时间:2019-08-03 07:45:43

标签: python django

我有两个基本模型:

span

我想要的是在创建ModelB时,将其与OneA One关系与ModelA的score值一起填充在score字段中。

我尝试设置class ModelA(models.model): ... #some fields score = models.IntegerField() class ModelB(models.model) ... #some fields related_model=models.OneToOneField(ModelA) score = models.IntegerField(default=related_model.score) ,但是在迁移时出现错误:score = models.IntegerField(default=related_model.score)

我还尝试如下在ModelB下定义一个方法,并将其传递给默认方法:

AttributeError: 'OneToOneField' object has no attribute 'score'

这也不起作用。 设置def get_score(self, *args, **kwargs): return self.threat.score 时出现错误:default=get_score()

如何自动将模型的字段设置为相关模型的字段(通过OneToOne关系)?

1 个答案:

答案 0 :(得分:2)

您应该在保存时执行此操作。

def save(self, *args, **kwargs):
    if not self.score:
        self.score = self.threat.score
    return super().save(*args, **kwargs)