Я создал форму для добавления двух чисел и получения MultiValueDictKeyError в / result 'num1'. Я пробовал много вещей, но не могу понять это. Я решил попробовать @App -> views.py:
from django.shortcuts import render
from django.http import HttpResponse
from django.http import HttpRequest,HttpResponseRedirect
from .models import Footprint
# Create your views here.
def index(request):
foots = Footprint.objects.all()
return render(request, "index.html", {'foots': foots})
def calc(request):
val1 = int(request.POST['num1'])
val2 = int(request.POST['num2'])
res = val1 + val2
return render(request,'result.html',{'result': res})
@ templates -> index. html файл, в котором я пишу свою форму:
{% block content %}
<form action="calc" method="post">
{% csrf_token %}
<p style="color:white;">Installation Cost:</p> <input type="text" name="num1">
<p style="color:white;">Installation Year:</p> <input type="text" name="num2"><br><br>
<p><a href="result" class="btn btn-primary btn-lg btn-custom">SUBMIT</a></p>
</form>
{% endblock %}
@result.html:
{% block content %}
Result: {{result}}
{% endblock %}
@ здесь я получил ошибку
MultiValueDictKeyError at /result
'num1'
Request Method: GET
Request URL: http://127.0.0.1:8000/result
Django Version: 3.0.3
Exception Type: MultiValueDictKeyError
Exception Value:
'num1'
Exception Location: C:\Users\scott\Envs\venv\lib\site-
packages\django\utils\datastructures.py in __getitem__, line 78
Python Executable: C:\Users\scott\Envs\venv\Scripts\python.exe
Python Version: 3.8.0
Python Path:
['C:\\Users\\scott\\projects\\marciano',
'C:\\Users\\scott\\Envs\\venv\\Scripts\\python38.zip',
'C:\\Users\\scott\\Envs\\venv\\DLLs',
'C:\\Users\\scott\\Envs\\venv\\lib',
'C:\\Users\\scott\\Envs\\venv\\Scripts',
'c:\\users\\scott\\appdata\\local\\programs\\python\\python38\\Lib',
'c:\\users\\scott\\appdata\\local\\programs\\python\\python38\\DLLs',
'C:\\Users\\scott\\Envs\\venv',
'C:\\Users\\scott\\Envs\\venv\\lib\\site-packages']
Server time: Fri, 14 Feb 2020 21:33:42 -0500
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/result
Django Version: 3.0.3
Python Version: 3.8.0
Installed Applications:
['app1',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback (most recent call last):File "C:\Users\scott\Envs\venv\lib\site- packages\django\utils\datastructures.py", line 76, in __getitem__
list_ = super().__getitem__(key)
During handling of the above exception ('num1'), another exception occurred:
File "C:\Users\scott\Envs\venv\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
response = get_response(request)
File "C:\Users\scott\Envs\venv\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Users\scott\Envs\venv\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\scott\projects\marciano\app1\views.py", line 14, in calc
val1 = int(request.POST['num1'])
File "C:\Users\scott\Envs\venv\lib\site-packages\django\utils\datastructures.py", line 78, in __getitem__
raise MultiValueDictKeyError(key)
Exception Type: MultiValueDictKeyError at /result
Exception Value: 'num1'