#django #forms
#django #формы
Вопрос:
Я получаю эту ошибку при попытке запустить html-программу django.
File "C:Usersankitprojectdetricalcviews.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>```
Ответ №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