2017-10-06 85 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