我有一个django视图,它使用两个下拉菜单呈现模板:
<div class="input-group" id="_layer" style="display:none;">
<div class="input-group-btn" >
<div class="btn-group btn-group-sm" style="width:100%">
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" id="button-countries" type="button" name="name1" data-toggle="dropdown" data-target="#" style="width:100%">Country
<span class="caret"></span></button>
<ul class="dropdown-menu dropdown-menu-countries" id="country_list" name="name1" style="height: auto; max-height: 200px; overflow-x: hidden;">
{% if countries %}
{% for cntr in countries %}
<li><a href="#" id= {{ cntr }}>{{ cntr }}</a></li>
{% endfor %}
{% endif %}
</ul>
</div>
</div>
</div>
</br>
<select multiple="multiple" class="has-popover form-control" id="_all_values" data-container="body" data-content="keyword identifies a location Hold down "Control", or "Command" on a Mac, to select more than one." data-html="true" data-placement="right" name="regions" data-original-title="" title="">
</select>
</br>
<a href="{% url "layer_upload" %}" class="btn btn-primary pull-right">{% trans "Download as Excel" %}</a>
</div>
标签之间的值会自动填充,具体取决于第一个菜单的选择。
我现在要做的是当用户按下按钮时将两个下拉菜单(国家和地区)的选择传递到另一个视图:下载为excel。
在Django中最合适的方法是什么?
答案 0 :(得分:1)
执行此操作的最简单方法(对我而言)是通过POST或GET以基本HTML表单提交您的信息。然后,在专用表单视图中捕获所选国家和地区。
另一种方法是,如果您将网址设为/your-url/the_country_id/the_region_ud
,则在选择更改时更新链接网址(使用jQuery,或不使用AngularJS)。 jQuery reference
HTML示例
<select name="test" id="">
<option value="france">france</option>
<option value="mexico" selected>mexico</option>
<option value="china">china</option>
</select>
<a href="https://google.com#q=" target=_blank>Go to <span class="text"></span></a>
Javascript示例
var $btn = $('a'),
$btnHref = $btn.attr('href'),
$btnTxt = $('.text'),
$select = $('select');
$btnTxt.text($select.val());
$btn.attr('href', $btnHref + $select.val());
$select.change(function () {
$btnTxt.text($select.val());
$btn.attr('href', $btnHref + $select.val());
});