2015-05-05 96 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