我有2个型号(例如)。
class A(models.Model):
name = models.CharField()
class B(models.Model):
a = models.ForeignKey(A)
my_name = models.CharField()
所以,我想创建(并更新)B实例的字段my_name
,其中包含与其实例相关的A实例的字段name
(一个到许多关系)。
我试过了:
class B(models.Model):
....
def __init__(self, *args, **kwargs):
self.my_name = self.a.name
但是我得到了错误:
AttributeError
Exception Value:
'B' object has no attribute 'a_id'
我认为这与Django为外键字段添加_id
有关,所以我尝试过:
class B(models.Model):
a = models.ForeignKey(A, db_column="a")
...
但是我也遇到了同样的错误。
我对Django很新。 THX!
答案 0 :(得分:4)
尝试覆盖save
模型上的B
方法:
class B(models.Model):
a = models.ForeignKey(A)
my_name = models.CharField()
def save(self, *args, **kwargs):
self.my_name = self.a.name
super(B, self).save(*args, **kwargs)