Python django中的动态输入值
我在Django有一个网站,我想用Python脚本执行一些计算。 我在models.py或forms.py中没有任何代码,只是在转换Django(输入到请求,输出到返回)的python脚本的视图中。 我的计算有两个步骤。第一个请求是一个数字,第二个请求是一个数字列表,其中列表的大小(要显示多少输入字段)基于第一个请求的数字。 例如,如果第一个请求是Python django中的动态输入值,python,html,django,forms,Python,Html,Django,Forms,我在Django有一个网站,我想用Python脚本执行一些计算。 我在models.py或forms.py中没有任何代码,只是在转换Django(输入到请求,输出到返回)的python脚本的视图中。 我的计算有两个步骤。第一个请求是一个数字,第二个请求是一个数字列表,其中列表的大小(要显示多少输入字段)基于第一个请求的数字。 例如,如果第一个请求是3,那么我们需要显示3个输入字段。如果第一个请求是5,那么我们需要5个输入等。 我的问题是html表单。我很困惑如何做到这一点,如何创建一个多值字段,
3
,那么我们需要显示3个输入字段。如果第一个请求是5
,那么我们需要5个输入等。
我的问题是html表单。我很困惑如何做到这一点,如何创建一个多值字段,以及如何将它与我的输入列表连接起来?
我无法创建动态输入字段来写入输入列表的值
我的视图请求和输出:
if 'num' in request.POST:
num = request.POST['num']
else:
num = False
for i in range(int(num)):
if 'total' in request.POST:
total = request.POST['total']
else:
total = False
NList.append(int(total))
return render_to_response ('blog/calc.html', {'a' :a},context_instance=RequestContext(request))
a=我的输出列表
我在html中的代码:
<form action="" method="POST">{% csrf_token %}
<div class="form-group">
<label class="col-xs-1 control-label">Book</label>
Number of number: <input type="text" name="num" value="Number">
<div class="col-xs-1">
<button type="submit" value="Submit">send</button>
</div>
</div>
<div class="form-group hide" id="bookTemplate">
{% for i in num %}
Enter a value: <input type="text" name="total" value="Total value">
{% endfor%}
<div class="col-xs-1">
<button type="submit" value="Submit">Submit</button>
</div>
</div>
</form>
{%csrf\u令牌%}
书
人数:
发送
{num%中的i的%s}
输入一个值:
{%endfor%}
提交
如果我运行此操作并单击“提交”按钮,它不会显示任何内容-没有错误,没有更多输入。如果请求中的“num”为“num”,则不执行
操作。POST
您可以执行此操作:num=request.POST.get('num',False)
。这将自动将num
设置为False
,如果在请求中找不到它。POST
。如果我这样做,那么我将采取错误“方法”对象不可订阅请显示整个视图。py
,还有urls.py
-这样就不清楚是否使用基于类的视图等。@hellas你能确认你是这样写的:num=request.POST.get('num',False)
。我认为您使用的是[]
方括号而不是()
@xyres正确,现在我不接受错误,但不再使用我的表单,而不是在请求中使用如果'num'。POST
您可以这样做:num=request.POST.get('num',False)
。这将自动将num
设置为False
,如果在请求中找不到它。POST
。如果我这样做,那么我将采取错误“方法”对象不可订阅请显示整个视图。py
,还有urls.py
-这样就不清楚是否使用基于类的视图等。@hellas你能确认你是这样写的:num=request.POST.get('num',False)
。我认为您使用的是[]
括号,而不是()
@xyres。正确,现在我不接受错误,但不会再次使用我的表单