我有一个测验应用,模板中的JavaScript和django视图之间有很多交互。通常,在足够的互联网连接和较少的流量上,代码按预期工作。但是,一旦互联网缓慢且流量很高(即大约20人同时进行测验)。 Django视图停止捕获模板中表单发送的值 这是一个例子: 模板代码
<form action='{% url "QuestionsAndPapers:EvaluateTest" %}' method='post' id ='finishForm'>
{%csrf_token%}
<input type="text" name="timeTaken" value="" class='hidden' />
<button type="submit" id='testsub' value="{{te_id}}" class="btn btn-default text-center" name="testSub" onclick="formClick()" >Submit Test</button>
</form>
Django查看:
def evaluate_test(request):
user = request.user
me = Studs(user)
if 'testSub' in request.POST:
# get values of test id and total test time
try:
test_id = request.POST['testSub']
test_id = int(test_id)
现在问题是模板成功返回{{te_id}}变量的大部分时间,但是当流量很高且互联网很慢时,evaluate_test函数无法捕获{{te_id}}变量并且它会抛出一个 错误
ValueError:基数为10的int()的无效文字:
问题是此错误不可重复。
答案 0 :(得分:1)
用test_id = int(test_id)
替换您的行test_id = int(float(test_id))
为什么会出现这个ValueError?
>>> int('5.0')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '5.0'
>>> int(float('5.0'))
5
有关详细信息,请参阅此stackoverflow post。