Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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_Python 3.x_Django Models - Fatal编程技术网

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的保存方法。