在具有两个模型(A和B)的Django应用程序上,B具有link
字段,该字段是与A的外键关系:
# models.py
class A(models.Model):
name = models.CharField(max_length=100)
description = models.CharField(max_length=15)
my_bool = models.BooleanField(default=True)
class B(models.Model):
link = models.ForeignKey(A)
b_bool = models.BooleanField(default=link.my_bool) # Error!
我希望b_bool
字段具有链接的my_bool
值作为默认值 (如果未提供) B.b_bool
通过石墨烯突变。
当前,使用link.my_bool
作为默认值进行迁移时会引发以下错误:
AttributeError: 'ForeignKey' object has no attribute 'my_bool'
答案 0 :(得分:0)
我认为它不会那样工作。相反,请尝试覆盖save()
方法:
class B(models.Model):
link = models.ForeignKey(A)
b_bool = models.BooleanField(default=False)
def save(self, *args, **kwargs):
if not self.b_bool:
self.b_bool = self.link.my_bool
super(B, self).save(*args, **kwargs)