无法获取多个提交按钮以django形式工作

时间:2016-12-29 17:16:39

标签: jquery python django django-forms

我在这里看到了这个:

How can I build multiple submit buttons django form?

我试图模仿自己的代码(我觉得我不太了解request.POST对象)

来自views.py的片段:

def globe(request):

    if request.method == 'POST':
        #for key, value in request.POST:
        #    print (key,value)

        if 'LoadLayer' in request.POST:
            print 'LOADED LAYER'
        elif 'notloadlayer' in request.POST:
            print 'not loaded layer'
        else:
            print 'BLARG' #hits this all the time...

然后是html:

     <form action="/" method="post" id="form">{% csrf_token %}
           <!--  {{ form.as_table     }} -->
            <table>
                {% for field in form %}
                <tr><td><font color="white">{{field}}</font></td></tr>
                {% endfor %}
            </table>
            <input type="submit" name="LoadLayer" value="Load Entities" />
            <input type="submit" name="notloadlayer" value="Export KML" />
        </form>

所以,没有任何东西都在request.POST对象中(我在评论中,我试图打印出字典中的项目,它从来没有打印太多的东西,或者说有些错误)。

不确定我错过了什么部分或做错了什么?

1 个答案:

答案 0 :(得分:1)

使用以下代码

对于HTML和Jquery

<form action="/" method="post" id="form">{% csrf_token %}
    <!--  {{ form.as_table     }} -->
    <table>
        {% for field in form %}
        <tr><td><font color="white">{{field}}</font></td></tr>
        {% endfor %}
    </table>
    <input type="checkbox" name="hidden_checkbox" id="hidden_checkbox" style="display:none"/>
    <input type="button" value="Load Entities" data-action="true"/>
    <input type="button" value="Export KML" data-action="false"/>
</form>

<script>
    $('input[type="button"]').click(function(){
        $('#hidden_checkbox').prop('checked', JSON.parse($(this).attr("data-action")));
        $('form').submit();
    });
</script>

对于Django

def globe(request):

    if request.method == 'POST':
        if request.POST.get('hidden_checkbox'):
            print 'LOADED LAYER'
        else:
            print 'not loaded layer'