gpt4 book ai didi

python - python django 使用 Post 方法时出现 MultiValueDictKeyError

转载 作者:太空宇宙 更新时间:2023-11-03 20:28:13 25 4
gpt4 key购买 nike

我有一个表单,用户选择了一种颜色,这个值返回给我,但是当用户选择颜色时,返回了 MultiValueDictKeyError,我不知道为什么

这是我的观点:

def primeira_pergunta(request):
trans = Tranfer()
my_list = trans.shared[0]
respostaum = ['amarelo', 'vermelho', 'roxo', 'cinza']
selecionada = 'amarelo'
if request.method == 'POST':
respostaum = request.POST['respostaum']
selecionada = request.POST['selecionada']
#if selecionada != 'Escolha uma':
f = Cheiro.objects.get(pk=my_list)
u = f.pk
f.resposta1 = selecionada
f.save()
else:
selecionada = 'Escolha uma'

context = {'respostaum': respostaum, 'selecionada': selecionada}

return render(request, 'cheiro/primeira_pergunta.html', context)

这是我的模板:

<form method="POST">
{% csrf_token %}

<label for="respostaum">Selecione unidade</label>
<select class="form-control" id="respostaum" name="respostaum">
{% for selecionada in respostaum %}
<option value="{{ selecionada }}">{{ selecionada }}</option>
{% endfor %}
</select>
<input type="submit">

</form>

我尝试替换selecionada = request.POST['selecionada'] 对于此 selecionada = request.POST.get('selecionada') 并返回错误,返回 null。

回溯:

Environment:


Request Method: POST
Request URL: http://127.0.0.1:8000/cheiro/primeira_pergunta/

Django Version: 2.1.5
Python Version: 3.6.5
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'apps.cheiro',
'apps.core']
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:

File "C:\ProgramData\Anaconda3\lib\site-packages\django\utils\datastructures.py" in __getitem__
77. list_ = super().__getitem__(key)

During handling of the above exception ('selecionada'), another exception occurred:

File "C:\ProgramData\Anaconda3\lib\site-packages\django\core\handlers\exception.py" in inner
34. response = get_response(request)

File "C:\ProgramData\Anaconda3\lib\site-packages\django\core\handlers\base.py" in _get_response
126. response = self.process_exception_by_middleware(e, request)

File "C:\ProgramData\Anaconda3\lib\site-packages\django\core\handlers\base.py" in _get_response
124. response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "C:\graficos\quiz\apps\cheiro\views.py" in primeira_pergunta
70. selecionada = request.POST['selecionada']

File "C:\ProgramData\Anaconda3\lib\site-packages\django\utils\datastructures.py" in __getitem__
79. raise MultiValueDictKeyError(key)

Exception Type: MultiValueDictKeyError at /cheiro/primeira_pergunta/
Exception Value: 'selecionada'

最佳答案

views.py 中尝试此代码,保持模板不变(如问题中所示):

def primeira_pergunta(request):
trans = Tranfer()
my_list = trans.shared[0]
respostaum = ['amarelo', 'vermelho', 'roxo', 'cinza']
if request.method == 'POST':
selecionada = request.POST['respostaum']
#if selecionada != 'Escolha uma':
f = Cheiro.objects.get(pk=my_list)
u = f.pk
f.resposta1 = selecionada
f.save()

context = {'respostaum': respostaum}

return render(request, 'cheiro/primeira_pergunta.html', context)

关于python - python django 使用 Post 方法时出现 MultiValueDictKeyError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57679817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com