2017-10-06 82 views
0

我有以下两种模型。我想要的是每当我填充模型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

+0

您可以覆盖Book模型的保存方法,或者更好地为Book模型编写post_save信号。 –

+0

它基本上取决于你的表单看起来是什么样子,以及在另一个模型中写入数据时你想达到什么目的。你想在创建'Book'时创建'Contributor'还是只在'Contributor'不存在之前创建它?附加问题,为什么您需要创建一个未与ForeignKey链接的模型实例? –

+0

我想在创建图书时创建一位参与者。另外我想用Contributor模型添加数据 –

回答

0

如果我理解你的问题清楚了,你想一个链接到其贡献者。只需使用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