2016-12-29 56 views
-2

我看到這個在這裏:不能得到多個提交按鈕Django的形式工作

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對象中我沒有任何東西(我在評論中試圖打印出字典中的項目,並且從未打印過太多的東西或一些此類錯誤)。

不知道哪部分我失蹤或做錯了?

+0

爲什麼它應該是在POST?它來自哪裏?它沒有出現在你的模板中 –

+0

我確實改變了html代碼(發佈了一個較舊的測試版本)。它現在在模板中,對不起,我錯了(來自不同的測試) – Codejoy

+0

因此更新了代碼,仍然沒有骰子。 – Codejoy

回答

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'