Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获取for循环生成的表单的值_Python_Django - Fatal编程技术网

Python 如何获取for循环生成的表单的值

Python 如何获取for循环生成的表单的值,python,django,Python,Django,请,我正在尝试创建一个税务计算器应用程序,用户在其中输入x个设备数,然后将x保存到数据库中,然后在同一HTML页面上显示一个包含x个字段的表单,供用户填写每个设备的功率 views.py 模板 我遇到的问题是获取生成的x个字段的值,而不将这些值保存到数据库中,在某些计算中使用这些值。例如,用户输入5作为设备数,页面重新加载并生成一个包含5个字段的表单,如何获取每个字段的值,以便在my views.py中进行像value1+value2+value3+value4+value5这样的求和?谢谢除了

请,我正在尝试创建一个税务计算器应用程序,用户在其中输入x个设备数,然后将x保存到数据库中,然后在同一HTML页面上显示一个包含x个字段的表单,供用户填写每个设备的功率

views.py

模板


我遇到的问题是获取生成的x个字段的值,而不将这些值保存到数据库中,在某些计算中使用这些值。例如,用户输入5作为设备数,页面重新加载并生成一个包含5个字段的表单,如何获取每个字段的值,以便在my views.py中进行像value1+value2+value3+value4+value5这样的求和?谢谢

除了添加的csrftoken之外,请求中的键数不匹配x吗?对不起,我似乎没有清楚地了解您可能我没有正确地理解您,但在我看来您似乎想要获取表单字段的数量。既然它们都存在于request.POST中,还有您不关心的csrftoken密钥,为什么不直接获取request.POST的长度呢?好的,现在我知道了。我不想得到表单字段的数量,但我想得到for loopok在表单中生成的每个字段的值。请问您为什么不想将这些值放入数据库?在Django中,存储值以供以后在数据库中使用是标准的,特别是因为它非常容易。
def input_gadget(request):
if request.user.is_anonymous():
    return HttpResponseRedirect('/')
if request.method == 'POST':
    form = NumberOfGadgets(request.POST)
    user = request.user
    input_form = False
    if form.is_valid():
        gadget = None
        no_of_gadgets = form.cleaned_data['gadgets']
        current_user = request.POST.get('user')
        data = TaxDetails(gadgets=no_of_gadgets, user=user)
        data.save()
        input_form = True
        gadgets = TaxDetails.objects.get(user=user, latest=True)
        fields = range(1, gadgets.gadgets+1)
        if request.method == 'POST':
            for field in fields:
                power_input = request.POST.get(field)
                tax = 'value1 + value2 + value3'
                TaxDetails.objects.filter(user=user, latest=True).update(tax=tax)
                due = TaxDetails.objects.get(latest=True, user=user)
                context = {'due': due, 'form': form, 'input_form': input_form, 'fields': fields, 'user': user}
                return render_to_response('inputdata.html', context, context_instance=RequestContext(request))
        context = {'form': form, 'input_form': input_form, 'fields': fields, 'user': user}
        return render_to_response('inputdata.html', context, context_instance=RequestContext(request))
else:
    form = NumberOfGadgets()
user = request.user
taxdetails = TaxDetails.objects.get(user=user, latest=True)
context = {'form': form, 'taxdetails': taxdetails}
return render_to_response('inputdata.html', context, context_instance=RequestContext(request))
<div id="profile_base">
        <div id="header">
            <h3 style="color: #fff; text-align: center"> Enter your data</h3>
        </div>

        <form action="#" method="post" name="main_form">
            <input type="hidden" name="main_form" value="no_of_gadgets" />
            {% csrf_token %}
                <p>Previous number of gadgets: {{ taxdetails.gadgets }}</p>
                <p>Your previous calculation was on: {{ taxdetails.creation_date }}</p>
                <p>Your previous tax was: {{ taxdetails.tax }}</p>
                <p>
                    {{ form }}
                </p>
            <input type="hidden" name="current_user" value="{{ user }}"/>
            <input type="submit" value="Enter" />
            <a href= '/' > <input type="button" value="Cancel"></a>
        </form>
        <form name="data_form" action="#" method="post">
        <input type="hidden" name="action" value="calcuclate">
            {% csrf_token %}
            {% if input_form %}
                {% for field in fields %}
                    <p><label for="{{ field }}">Enter item {{ field }} power(in WATT)</label> <input type="text" name="{{ field }}"/></p><br/>
                {% endfor %}
                <p id="data_error"></p>
                <input type="submit" value="Calculate" name="Calculate"/>
            {% endif %}
        </form>
    {{ due.tax }}
    </div>