2015-05-05 97 views
0

我想知道我的代碼中出了什麼問題。當我嘗試保存數據時,它會被覆蓋。使用for循環覆蓋數據django

  if form.is_valid(): 
       for item in unions_choice_list: 
        announcement = form.save(commit=False) 
        obj = Union.objects.get(pk=item) 
        announcement.union = obj 
        announcement.tittle = request.POST.get('tittle') 
        announcement.message_text = request.POST.get('message_text') 
        tilldate = request.POST.get('till_date') 
        p = unicodedata.normalize('NFKD', tilldate).encode('ascii','ignore') 
        till_date1 = datetime.datetime.strptime(p, '%d %b %Y').date() 
        announcement.till_date = till_date1 
        announcement.type = type 
        announcement.message_from = request.POST.get('message_from') 
        announcement.show_to = 'union' 

        if request.FILES.get('file1') is not None: 
         announcement.file1 = request.FILES['file1'] 
        announcement.save() 
      else: 
       messages.error(request, "Correct the displayed errors") 

回答

1

如果調用形式的save()方法多次相同的模型實例將保存所有的時間。

for item in unions_choice_list: 
    form.instance.pk = None 
    announcement = form.save(commit=False) 
    ... 

或者說,這是相同的:在每個調用你必須設置該實例的pkNone創建新實例

for item in unions_choice_list: 
    announcement = form.save(commit=False) 
    announcement.pk = None 
    ... 
+0

感謝,這是好了...! – LaksHmiSekhar