ValueError:没有足够的值来解包(预期2,得1)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ValueError:没有足够的值来解包(预期2,得1)相关的知识,希望对你有一定的参考价值。
以下是我的代码
views.朋友
from django.shortcuts import render
from .forms import MedicineForm
from .models import Medicine
def index(request):
all_medicine = Medicine.objects.order_by('id')
return render(request, 'medicine/index.html', {'all_medicine': all_medicine})
def add(request):
if request.method == 'POST':
form = MedicineForm(request.POST)
if form.is_valid():
new = Medicine()
new.name = form.cleaned_data['药品名称']
new.price = form.cleaned_data['药品价格']
new.number = form.cleaned_data['药品编号']
new.sort = form.cleaned_data['药品分类']
new.unit = form.cleaned_data['计价单位']
new.save()
return render(request, 'medicine/index.html')
else:
form = MedicineForm()
return render(request, 'medicine/add.html', {'form': form},)
forms.朋友
from django import forms
class MedicineForm(forms.Form):
药品编号 = forms.IntegerField()
药品名称 = forms.CharField(max_length=100)
药品价格 = forms.IntegerField()
jj_choice = {
'瓶': '瓶',
'包': '包',
'盒': '盒',
}
计价单位 = forms.ChoiceField(
choices=jj_choice
)
药品分类 = forms.CharField(max_length=100)
add.html:
{% extends 'polls/index.html' %}
{% block medicine_form %}
<form action="http://localhost:8000/medicine/add/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="添加药品" />
</form>
{% endblock %}
追溯:
内部39中的文件“E: p lib site-packages django core handlers exception.py”response = get_response(request)
文件“E: p lib site-packages django core handlers base.py”在_get_response 187. response = self.process_exception_by_middleware(e,request)
_get_response 185中的文件“E: p lib site-packages django core handlers base.py”。response = wrapped_callback(request,* callback_args,** callback_kwargs)
文件“F: ddjj x mysite medicine views.py”添加25. return render(request,'medicine / add.html',{'form':form},)
渲染中的文件“E: p lib site-packages django shortcuts.py”.content = loader.render_to_string(template_name,context,request,using = using)
在render_to_string 68中输入文件“E: p lib site-packages django template loader.py”。返回template.render(context,request)
渲染66中的文件“E: p lib site-packages django template backends django.py”。返回self.template.render(context)
在渲染208中输入文件“E: p lib site-packages django template base.py”。返回self._render(context)
在_render 199中输入文件“E: p lib site-packages django template base.py”。返回self.nodelist.render(context)
渲染994中的文件“E: p lib site-packages django template base.py”.bit = node.render_annotated(context)
在render_annotated 961中输入文件“E: p lib site-packages django template base.py”。return self.render(context)
文件“E: p lib site-packages django template loader_tags.py”在渲染器174.中返回compiled_parent._render(context)
在_render 199中输入文件“E: p lib site-packages django template base.py”。返回self.nodelist.render(context)
渲染994中的文件“E: p lib site-packages django template base.py”.bit = node.render_annotated(context)
在render_annotated 961中输入文件“E: p lib site-packages django template base.py”。return self.render(context)
渲染70中的文件“E: p lib site-packages django template loader_tags.py”。result = block.nodelist.render(context)
渲染994中的文件“E: p lib site-packages django template base.py”.bit = node.render_annotated(context)
在render_annotated 961中输入文件“E: p lib site-packages django template base.py”。return self.render(context)
在render 1050中输入文件“E: p lib site-packages django template base.py”。return render_value_in_context(output,context)
文件“E: p lib site-packages django template base.py”在render_value_in_context 1028中.value = force_text(value)
force_text 76中的文件“E: p lib site-packages django utils encoding.py”.s = six.text_type(s)
391中的文件“E: p lib site-packages django utils html.py”.klass.str = lambda self:mark_safe(klass_str(self))
在str 123中输入文件“E: p lib site-packages django forms forms.py”。return self.as_table()
文件“E: p lib site-packages django forms forms.py”in_table 271. errors_on_separate_row = False)
在_html_output 226.“field”中输入文件“E: p lib site-packages django forms forms.py”:six.text_type(bf),
391中的文件“E: p lib site-packages django utils html.py”.klass.str = lambda self:mark_safe(klass_str(self))
str 43中的文件“E: p lib site-packages django forms boundfield.py”返回self.as_widget()
as_widget 101中的文件“E: p lib site-packages django forms boundfield.py”。返回force_text(widget.render(name,self.value(),attrs = attrs))
在渲染537中的文件“E: p lib site-packages django forms widgets.py”。options = self.render_options([value])
在render_options 560中的文件“E: p lib site-packages django forms widgets.py”。对于option_value,self.choices中的option_label:
异常类型:/ medicine / add / Exception值的ValueError:没有足够的值来解包(预期2,得1)
你有
return render(request, 'medicine/add.html', {'form': form},)
你需要
return render(request, 'medicine/add.html', {'form': form})
,
最后使它成为元组
jj_choice = {
'瓶': '瓶',
'包': '包',
'盒': '盒',
}
应写成,
jj_choice = (
('瓶', '瓶'),
('包', '包'),
('盒', '盒'),
)
键,文本元组。
以上是关于ValueError:没有足够的值来解包(预期2,得1)的主要内容,如果未能解决你的问题,请参考以下文章
ValueError:没有足够的值来解包(预期 3,得到 2)。啥地方出了错? [复制]
Python 2 - ValueError:没有足够的值来解包(预期 6,得到 1)
如何修复ValueError:没有足够的值来解包(预期2,得到1)[重复]
ValueError:没有足够的值来解包(预期为 2,得到 1)当试图在 python 中解包 dict 以使用 pandas 进行数据标记时