在django中填充模型B的形式后,从模型A获取数据到模型B
问题描述:
我有以下两种模型。我想要的是每当我填充模型Book中的数据,即其名称(如Book的名称为Java)它也会自动保存在Contributor模型下的字段“name”下。此外,我可以手动能够填补Django管理的贡献者模型中的“名称”字段在django中填充模型B的形式后,从模型A获取数据到模型B
class Book(models.Model):
name = models.CharField(max_length=30)
def __str__(self):
return self.name
class Contributor(models.Model):
name = models.CharField(max_length=30)
def __str__(self):
return self.name
Data in model Book After Filling Data in model Book I want Data in model Contributor as this
答
如果我理解你的问题清楚了,你想一个书链接到其贡献者。只需使用ForeignKey
方法。通过这样做,对象将包含关于其贡献者(不只是其名称)的所有信息。
class Book(models.Model):
contributor = models.ForeignKey(Contributor, on_delete=models.CASCADE)
name = models.CharField(max_length=30)
def __str__(self):
return self.contributor.name
class Contributor(models.Model):
name = models.CharField(max_length=30)
def __str__(self):
return self.name
所有关于Django的ForeignKey是here。
您可以覆盖Book模型的保存方法,或者更好地为Book模型编写post_save信号。 –
它基本上取决于你的表单看起来是什么样子,以及在另一个模型中写入数据时你想达到什么目的。你想在创建'Book'时创建'Contributor'还是只在'Contributor'不存在之前创建它?附加问题,为什么您需要创建一个未与ForeignKey链接的模型实例? –
我想在创建图书时创建一位参与者。另外我想用Contributor模型添加数据 –