1

Я создал форму, которая при вводе страницы загружает исходные данные из json-файла, а затем я могу редактировать и сохранять данные в той же форме. Все работают отлично, но каждый раз, когда я нажимаю кнопку «Отправить», база данных принимает две строки одинаковых данных. Любая помощь оценивается.Дублирование данных в db при сохранении (форма Django)

views.py

def form_save_and_edit(request, id=None, template_name='create.html'): 

""" referring data from "model_from_json()", 
making data visible within another function """ 

func = model_from_json() 

""" savind and editing form data in the same form """ 

form = UserDataForm(request.POST) 
if request.POST: 

    updated_field = form.save() 
    last_name = request.session['last_name'] = updated_field.last_name 
    first_name = request.session['first_name'] = updated_field.first_name 
    email = request.session['email'] = updated_field.email 
    skype = request.session['skype'] = updated_field.skype 

    form = UserDataForm({ 
    'last_name': last_name, 
    'first_name': first_name, 
    'skype':skype, 
    'email':email 
    }) 

    redirect_url = reverse('create') 
    message = messages.success(request, "You successfully updated your profile!") 
    if form.is_valid(): 
     form.save() 
else: 

    form = UserDataForm({ 
     'last_name': func['last_name'], 
     'first_name':func['first_name'], 
     'email':func['email'], 
     'skype':func['skype'], 

     }) 

    message = messages.success(request, "You just loaded your profile initial data") 
return render_to_response('create.html', {'form': form,}, context_instance=RequestContext(request)) 

ответ

1

кажется, что вы называете два раза form.save() заявление. После того, как в начале метода, здесь:

updated_field = form.save() 

Еще один в конце:

if form.is_valid(): 
    form.save() 
Смежные вопросы