Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:填充模型';使用另一个模型的值创建字段(在初始化和保存时)_Django_Django Models_Foreign Keys - Fatal编程技术网

Django:填充模型';使用另一个模型的值创建字段(在初始化和保存时)

Django:填充模型';使用另一个模型的值创建字段(在初始化和保存时),django,django-models,foreign-keys,Django,Django Models,Foreign Keys,我有两个模型(例如) 因此,我想创建(并更新)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

我有两个模型(例如)

因此,我想创建(并更新)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为外键字段添加一个
\u id
有关,所以我尝试了:

class B(models.Model):
    a = models.ForeignKey(A, db_column="a")
    ...
但我也有同样的错误


我对Django很陌生。谢谢

尝试覆盖您的
B
型号上的
save
方法:

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)

尝试覆盖
B
型号上的
save
方法:

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)

在这种情况下,您如何看待使用预存信号?在这种情况下,您如何看待使用预存信号?