Я пытаюсь создать страницу, на которой пользователь может видеть свой текущий адрес электронной почты и изменить его, если он этого захочет. Я просто тестирую с очень простой формой и очень простым HttpResponseRedirect, если форма недействительна. Тем не менее, ни мое электронное письмо не изменяется для пользователя, ни мой ответ об ошибке, если форма не работает. Я не уверен, что вызывает это
forms.py:
class ChangeEmail(forms.Form):
email1 = forms.EmailField(label=u'Type new Email')
email2 = forms.EmailField(label=u'Type Email again')
views.py:
def change_email(request, username):
if request.method == 'POST':
user1 = User.objects.get(username=username)
form1 = ChangeEmail(request.POST)
if form1.is_valid():
user1.email = form.cleaned_data['email1']
form1.save()
return HttpResponseRedirect('/register/success')
else:
return HttpResponseRedirect('/stupid')
else:
user = User.objects.get(username=username)
email = user.email
form = ChangeEmail()
variables = RequestContext(request, {
'form': form,
'email': email
})
return render_to_response('registration/email.html', variables
Заранее спасибо за помощь.
EDIT:
URL, который я назначил для отображения формы, - /user/testuser/email
. Я пытаюсь ввести неверный ввод в поля, чтобы получить сообщение об ошибке, но когда я нажимаю на кнопку отправить, оно перенаправляет меня обратно на страницу /user/testuser
, которая отображает информацию о пользователе. Мой шаблон электронной почты для изменения ниже:
{% extends "base.html" %}
{% block title %}Change Email{% endblock %}
{% block head %}Change Email{% endblock %}
{% block content %}
<p> Current Email: {{ email }} </p>
<form method="post" action=".">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Change Email" />
</form>
{% endblock %}