【发布时间】:2016-05-11 03:24:59
【问题描述】:
我没有使用 Ajax 或 django 表单。我在表单标签中有纯 HTML 选择标签,并在我的视图中发送选定的选项值。我想在提交后保留选择选项值。目前,无论我的选择如何,它的默认值都是 1。帮助将不胜感激。
这是我的模板代码:
<form method = "post" action = "{% url 'index' %}">
{% csrf_token %}
<label class="mainlbl">Vega</label>
<select name = "drop1" >
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
<input class="btn btn-ocean btn-side-bar" type = "submit" value="Submit">
</form>
这是我的看法:
def index(request):
if request.method == "POST":
vega = request.POST['drop1']
vega = int(vega)
gvo = GVOptimize('NSE', 'Nifty')
data = gvo.get_optimal_strategies(vega)
str1 = None
for i in range(0, len(data)):
if i == 0:
str1 = data[i]
elif i == 1:
str2 = data[i]
elif i == 2:
str3 = data[i]
elif i == 3:
str4 = data[i]
else:
break
context_dict = {'str1': str1, 'str2': str2, 'str3': str3, 'str4': str4 'vega': vega}
return render(request, 'demo/dashboard.html', context_dict)
else:
context_dict = {}
return render(request, 'demo/dashboard.html', context_dict)
【问题讨论】:
-
您有什么理由不使用 django 表单吗?
-
for 循环的意义何在?为什么有四个不同的
str*变量,您只使用它们来填充上下文字典?即使您不了解 dict 理解,为什么不只是context_dict = {'str1': data[0], ...}? -
@Sayse yup..我已经开发了前端,不想玩设计部分。
-
表单完全不会影响前端
-
哦,当然,您可以在上下文中传回选定的索引,然后检查每个选项是否等于选定的索引,如果是则选择它。 (提示:您也可以对选项使用 for 循环)。但这是一种非常老套的方法来绕过您可以在此处使用表单的事实。
标签: html django django-templates