2015-05-05 4 views
0

Мне было интересно, что пошло не так в моем коде. Когда я пытаюсь сохранить данные, они будут перезаписаны.данные перезаписаны при использовании для цикла 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() метод несколько раз формы в тот же модели экземпляра будут сохранены все время. Чтобы создать новый экземпляр на каждый звонок, вы должны установить pk в None этого экземпляра:

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

Или, что то же самое:

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

спасибо, это было просто здорово ... !!! – LaksHmiSekhar

Смежные вопросы