如何在Django中,在按下按钮后使form.field易于修改

如何在Django中,在按下按钮后使form.field易于修改,django,button,request,Django,Button,Request,例如,我有form.email 我想在按钮更改电子邮件后修改此字段。 代码如下所示。 模板: <form action="" method="post">{% csrf_token %} {{ form.as_p }} {% if mod_availiable == True %} <span class="glyphicon glyphicon-ok"</span> {% else %} {{ email }} {% endif

例如,我有form.email 我想在按钮更改电子邮件后修改此字段。 代码如下所示。 模板:

<form action="" method="post">{% csrf_token %}

  {{ form.as_p }}
  {% if mod_availiable == True %}
    <span class="glyphicon glyphicon-ok"</span>
  {% else %}
    {{ email }} 
  {% endif %}

<br>
<input type="submit" value="Update" name="profile_update"/>

</form>


<form action="" method="post">
  <input type="submit" value="Change Email" name="change_email"/>
</form>

点击“更改电子邮件”按钮后,根据我的邮政编码,mod_将不正确。

如果我理解您的问题,则不是100%。但这就是你想做的吗

{% if mod_availiable %}
    <form action="" method="post">{% csrf_token %}
        {{ form.as_p }}
    </form>
{% else %}
    {{ email }} 
{% endif %}
template.html:

                            <form action="" method="post">{% csrf_token %}

                                {% for f in form %}
                                    {% if f.name == 'email'%}

                                        {% if mod_availiable == True %}
                                            {{ f }}
                                        {% else %}
                                            {{ f.value }} 
                                            <input type="submit" value="Check" name="email_verify"/>
                                            <form action="" method="post">
                                                <input type="submit" value="Change Email" name="change_email"/>
                                            </form>
                                        {% endif %}
                                    {% else %}
                                        {{ f }}
                                    {% endif %}
                                    <br>
                                {% endfor %}


                                <input type="submit" value="Update" name="profile_update"/>

                            </form>
这是主要问题。
但是看起来还是很难看,如果这是UpdateView->上下文在按下按钮后不会更新。

对不起,我有点不清楚:您希望表单在按下按钮后变为可用,还是希望表单提交?表单的字段易于修改,在按下更改按钮后,然后点击更新按钮发布此值是,但是在这种情况下,如何处理mod_availability==True?我的意思是,按下按钮后如何到达{%else%}分支?您可以在其中放入您想要的任何内容。当用户未按下按钮时,将到达{%else%}块。例如,你可以向他们显示他们当前的电子邮件。不,我无法收到电子邮件,点击按钮后,你必须将电子邮件放入上下文对象中。否则,请发布您的整个视图,以便我们可以更好地帮助您
def post(self, request, *args, **kwargs):
    if "change_email" in request.POST:
        form = self.get_form()
        return render(request, self.template_name, {'form': form,'mod_availiable': True})
                            <form action="" method="post">{% csrf_token %}

                                {% for f in form %}
                                    {% if f.name == 'email'%}

                                        {% if mod_availiable == True %}
                                            {{ f }}
                                        {% else %}
                                            {{ f.value }} 
                                            <input type="submit" value="Check" name="email_verify"/>
                                            <form action="" method="post">
                                                <input type="submit" value="Change Email" name="change_email"/>
                                            </form>
                                        {% endif %}
                                    {% else %}
                                        {{ f }}
                                    {% endif %}
                                    <br>
                                {% endfor %}


                                <input type="submit" value="Update" name="profile_update"/>

                            </form>