2012-09-24 42 views
0

我有一個型號:Django的遍歷所有項目進行保存,但只保存一個記錄

class People(models.Model): 
    name = models.CharField(max_length=100) 
    lastname = models.CharField(max_length=100) 

class Salary(models.Model): 
    id_of_people=models.ForeignKey(People) 
    salary = models.IntegerField(required=False) 

在views.py

- 當我試試這個:

for each in People.objects.all()[:3]: 
      Salary().id_of_people_id=each.id 
      Salary().save() 

它只保存3個Th id,而不是從1到3.所以它只保存一次。但是,我想循環所有3條記錄,爲什麼會發生這種情況?如何將所有人表格ID添加到工資表中?

+0

我不知道你在做什麼。 「薪水」是一個模型,而不是一個實例。在保存之前,您將不得不實際獲取或創建Salary實例。 –

+0

對不起,我忘記了。我已編輯它,請考慮這個編輯版本... –

+0

爲什麼'每行'縮進? –

回答

5

您正在創建單個Salary對象並將其更新三次。您需要創建三個單獨的對象。

for each in People.objects.all()[:3]: 
    item_salary=Salary() 
    item_salary.id_of_people_id=each.id 
    item_salary.save() 
+0

謝謝,它的工作..... –

+0

不客氣。祝你好運! – themanatuf

+0

@themanatuf如果我們想在模型中使用def save()來做同樣的事情,那麼我們需要將循環放在保存函數中? – ashim888