尝试运行html django程序时出现此错误。
File "C:\Users\ankit\project\detri\calc\views.py", line 22, in speedup
m1 = int(request.POST.get('mi1'))
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
功能
```def speedup(request):
#line22
m1 = int(request.POST.get('mi1'))
m3 = int(request.POST.get('mi3'))
#calculation stuff
return render(request, 'Speed Result.html', {"days": T})```
html表单
```<form action= "{%url 'sp'%}" method="POST" >
{% csrf_token %}
<label for="mi1"> Enter 1 minute :</label> <br><input type="number" id="mi1" name="mi1" ><br>
<label for="mi3"> Enter 3 minute :</label> <br><input type="number" id="mi3" name="mi3" ><br>
</html>```
答案 0 :(得分:1)
我更喜欢在Django中使用这种形式:
def speedup(request):
m1 = 0
m3 = 0
if request.method == 'POST':
form = # you should write here your form class
if form.is_valid():
form.save()
m1 = form.cleaned_data['mi1']
m3 = form.cleaned_data['mi3']
# calculation staff can be here
context = { 'form': form, 'm1': m1, 'm3': m3 }
return render(request, # your html file, context)
然后在html文件中,您需要添加 {{ form.as_p }}
您也可以查看文档,非常清楚https://docs.djangoproject.com/en/3.1/topics/forms/#the-view