Я хочу, чтобы две разные формы были в одном и том же шаблоне, но первая форма показывается дважды вместо второй, кроме того, я не знаю, пропадет ли при этом пароль без указания совета, какая-то помощь, пожалуйста?
шаблон
<div class="tab-pane container p-0 active" id="home1">
<form method="POST" action="#" id="datosForm" > {% csrf_token %}
<p>Por favor, no dejes ningún campo en blanco.
{{ form.as_ul }}
<button class="btn btn-primary py-1 px-2" type="submit" name="datosForm"> Save </button>
</p>
</form>
</div>
<div class="tab-pane container p-0 fade" id="home2">
<form method="POST" action="#" id="contraForm"> {% csrf_token %}
<p>Por favor, llena los siguientes campos para cambiar tu contraseña.
{{form.as_ul }}
<button class="btn btn-primary py-1 px-2" type="submit" name="contraForm" > Save </button>
</p>
</form>
</div>
views.py
def profileedit_view(request):
form= PerfilEditadoForm(request.POST or None)
if request.method== 'POST'and 'datosform' in request.POST:
form.instance = request.user
if form.is_valid():
form.save()
return redirect('profileedit')
else:
form= PerfilEditadoForm(instance=request.user)
args= {'form': form}
return render(request, 'profileedit.html', args)
context = {
'form': form
}
return render(request, "profileedit.html", context)
def change_password_view(request):
if request.method == 'POST' and 'contraform' in request.POST:
form = PasswordChangeForm(request.user, request.POST)
if form.is_valid():
user = form.save()
update_session_auth_hash(request, user) # Important!
messages.success(request, 'Contraseña cambiada con éxito')
return redirect('profileedit')
else:
messages.error(request, 'Ha ocurrido un error.')
else:
form = PasswordChangeForm(request.user)
context = {
'form': form
}
return render(request, 'profileedit.html', context)