简体   繁体   中英

Submit django form in a modal popup

I render my form inside a modal:

view:

@login_required
def task_edit(request, pk):
    member = get_object_or_404(Tasks, pk=pk)
    if request.method == "POST":
        form = TasksForm(request.POST or None, instance=member)
        if form.is_valid():
            reg = form.save(commit=False)
            reg.save()
            return HttpResponse(
                '<script type="text/javascript">window.close();</script>')
    else:
        form = TasksForm(instance=member)
    return render(request, 'TaskProj/task_edit.html', {'form': form})

my html rendered in a modal popup:

{%load staticfiles %}
 <div class="row">
             <div class="col-lg-12">
                  <div class="panel">
                <div class="content-box">
    <h3 class="content-box-header bg-primary">

                         <span class="icon-separator">
                                <i class="glyph-icon icon-tasks"></i>
                            </span>
                       <span class="header-wrapper">
 Eidt Tasks                      </span>

                      </span>

                        </h3>
    <div class="panel">
<div class="panel-body">
    <form method="POST" id="form" class="form-horizontal bordered-row" autocomplete="off">
        {% csrf_token %}
            <div class="example-box-wrapper">
                <div class="form-group">
                    {{ form.as_p }}
                </div>
             </div>
      <button type="submit" class="btn btn-primary btn-lg btn-block">Salva</button>
       </div>
    </div>
    </form>
<script type="text/javascript">
$(document).on('click','.submit',function(){
    $( "#form" ).submit();
});
</script>
{% endblock %}

This form is rendered inside a modal popup. I try to save, it close modal but not save form. I think there is a problem with submit button... Any idea? TY

you need to declare an action attribute with the url to your function that handles the specific form in views.py. So that the form knows where to go, and be handled:

 <form method="POST" id="form" class="form-horizontal bordered-row" action="{% 'task_edit' your-object.pk %}" autocomplete="off">
        {% csrf_token %}
            <div class="example-box-wrapper">
                <div class="form-group">
                    {{ form.as_p }}
                </div>
             </div>
<button type="submit" class="btn btn-primary btn-lg btn-block">Salva</button>
</div>
</div>
</form>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM