Возникла такая проблема. я и я в затыке.
Собственно нужно реализовать функционал изменения поля email по нажатии на кнопку.
Сначало я отправлял email как отдельный жлемент словаря в контексте
def get_context_data(self, **kwargs): context = super(UserUpdate, self).get_context_data(**kwargs) context['mod_availiable'] = False context['email'] = self.object.email return context def post(self, request, *args, **kwargs): self.object = self.get_object() if "change_email" in request.POST: form = self.get_form() self.mod_availiable = True return render(request, self.template_name, {'form': form,'mod_availiable': self.mod_availiable}) elif "email_to_change" in request.POST: self.object.email = request.POST.get('email_to_change') self.object.save() print self.get_form_kwargs() return redirect ('edit-profile') return super(UserUpdate, self).post(request, *args, **kwargs) {{ form.as_p }} {% if mod_availiable == True %} <label>Email:</label> <input type="text" value="{{ email }}" name="email_to_change"/> {% else %} <label>Email:</label> {{ email }} <input type="submit" value="Change Email" name="change_email"/> <input type="submit" value="Check" name="email_verify"/> {% endif %} <br> <input type="submit" value="Update" name="profile_update"/> </form>
Если же добавить email в список формы fields, то додумался только до подобной лапши:
{% for f in form %} {% if f.name == 'email'%} {% if mod_availiable == True %} {{ f }} {% else %} {{ f.value }} <input type="submit" value="Check" name="email_verify"/> <input type="submit" value="Change Email" name="change_email"/> {% endif %} {% else %} {{ f }} {% endif %} <br> {% endfor %}
Как можно реализовать такую штуку, чтоб была возможность показывать ошибки при вводе, лейблы и тд, чтоб все как у людей, но изменять емейл только после нажатия на кнопку?
Спасибо.