ValueError:没有足够的值可解包(预期2,得到1) [英] ValueError: not enough values to unpack (expected 2, got 1)

查看:152
本文介绍了ValueError:没有足够的值可解包(预期2,得到1)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下是我的代码

views.py

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.py


forms.py

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:


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 %}






回溯:


traceback:


文件 E:\p\lib\site-packages\django\内部
39中的核心\处理程序\exception.py。response = get_response(request)

File "E:\p\lib\site-packages\django\core\handlers\exception.py" in inner 39. response = get_response(request)

文件 E:\p\lib _get_response
187中的 site-packages django core handlers base.py。response = self.process_exception_by_middleware(e,request)

File "E:\p\lib\site-packages\django\core\handlers\base.py" in _get_response 187. response = self.process_exception_by_middleware(e, request)

_get_response
185中的文件 E:\p\lib\site-packagesdjango\core\handlers\base.py。response = wrapd_callback(request,* callback_args, ** callback_kwargs)

File "E:\p\lib\site-packages\django\core\handlers\base.py" in _get_response 185. response = wrapped_callback(request, *callback_args, **callback_kwargs)

文件 F:\ddjj\x\mysite\medicine\views.py中添加
25。return render(request,'medicine / add.html',{'form':form},)

File "F:\ddjj\x\mysite\medicine\views.py" in add 25. return render(request, 'medicine/add.html', {'form': form},)

文件 E:\p\lib\site-包\django $ shortcuts.py在渲染
30中。content = loader.render_to_string(template_name,context,request,usin g = using)

File "E:\p\lib\site-packages\django\shortcuts.py" in render 30. content = loader.render_to_string(template_name, context, request, using=using)

render_to_string $ b中的文件 E:\p\lib\site-packages\django\template\loader.py $ b 68. return template.render(context,request)

File "E:\p\lib\site-packages\django\template\loader.py" in render_to_string 68. return template.render(context, request)

文件 E:\p\lib\site-packages\django\template\ renderbackendsbdjango.py渲染
66。return self.template.render(context)

File "E:\p\lib\site-packages\django\template\backends\django.py" in render 66. return self.template.render(context)

文件​​ E:\p\lib渲染
208中的站点包 django模板 base.py。返回self._render(context)

File "E:\p\lib\site-packages\django\template\base.py" in render 208. return self._render(context)

文件 E :_pender
199中的:\p\lib\site-packages\django\template\base.py。return self.nodelist.render(context)

File "E:\p\lib\site-packages\django\template\base.py" in _render 199. return self.nodelist.render(context)

渲染
994中的文件 E:\p\lib\site-packages\django\template\base.py。bit = node.render_annotated(context)

File "E:\p\lib\site-packages\django\template\base.py" in render 994. bit = node.render_annotated(context)

render_annotated
961中的文件 E:\p\lib\site-packages\django\template\base.py。return self.render(context)

File "E:\p\lib\site-packages\django\template\base.py" in render_annotated 961. return self.render(context)

文件 E:\p\lib\s渲染
174中的ite-packages\django rendertemplate\loader_tags.py。返回generate_parent._render(context)

File "E:\p\lib\site-packages\django\template\loader_tags.py" in render 174. return compiled_parent._render(context)

文件 E:\ _render
199中的 p\lib\site-packages\django\template\base.py。return self.nodelist.render(context)

File "E:\p\lib\site-packages\django\template\base.py" in _render 199. return self.nodelist.render(context)

文件 E:

994中。bit = node.render_annotated(context)

File "E:\p\lib\site-packages\django\template\base.py" in render 994. bit = node.render_annotated(context)

render_annotated
961中的文件 E:\p\lib\site-packages\django\template\base.py。返回自身。 render(context)

File "E:\p\lib\site-packages\django\template\base.py" in render_annotated 961. return self.render(context)

渲染$ b中的文件 E:\p\lib\site-packages\django\template\loader_tags.py $ b70。结果= block.nodelist.render(上下文)

File "E:\p\lib\site-packages\django\template\loader_tags.py" in render 70. result = block.nodelist.render(context)

文件 E:\p\lib\site-packages\django\template渲染
994中的 base.py。bit = node.render_annotated(context)

File "E:\p\lib\site-packages\django\template\base.py" in render 994. bit = node.render_annotated(context)

文件 E:\p\lib\site -packages\django\template\base.py ender_annotated
961。return self.render(context)

File "E:\p\lib\site-packages\django\template\base.py" in render_annotated 961. return self.render(context)

File E:\p\lib\site-packages\django\template渲染
1050中的 base.py。返回render_value_in_context(输出,上下文)

File "E:\p\lib\site-packages\django\template\base.py" in render 1050. return render_value_in_context(output, context)

文件 E:\p\lib\site-在render_value_in_context
1028中打包django\template\base.py。value = force_text(value)

File "E:\p\lib\site-packages\django\template\base.py" in render_value_in_context 1028. value = force_text(value)

文件 E:\p\ \lib\site-packages\django\utils\encoding.py in force_text
76。s = six.text_type(s)

File "E:\p\lib\site-packages\django\utils\encoding.py" in force_text 76. s = six.text_type(s)


391中的文件 E:\p\lib\site-packages\django\utils\html.py。klass。 str = lambda self:mark_safe( klass_str(self))

File "E:\p\lib\site-packages\django\utils\html.py" in 391. klass.str = lambda self: mark_safe(klass_str(self))

文件 E:\p\lib\site-packages\django\forms\forms.py > str
123.返回self.as_table()

File "E:\p\lib\site-packages\django\forms\forms.py" in str 123. return self.as_table()

文件 E:\p\lib\site-packages\ django\forms\forms.py在as_table
271中。errors_on_separate_ro w = False)

File "E:\p\lib\site-packages\django\forms\forms.py" in as_table 271. errors_on_separate_row=False)

_html_output $ b中的文件 E:\p\lib\site-packages\django\forms\forms.py $ b226。字段:six.text_type(bf),

File "E:\p\lib\site-packages\django\forms\forms.py" in _html_output 226. 'field': six.text_type(bf),

文件 E:\p\lib\site-packages\django\ utils\html.py in
391。klass。 str = lambda self:mark_safe(klass_str(self))

File "E:\p\lib\site-packages\django\utils\html.py" in 391. klass.str = lambda self: mark_safe(klass_str(self))

str
43中的文件 E:\p\lib\site-packages\django\forms\boundfield.py。return self.as_widget()

File "E:\p\lib\site-packages\django\forms\boundfield.py" in str 43. return self.as_widget()

as_widget
101中的文件 E:\p\lib\site-packages\django\forms\boundfield.py。return force_text (widget.render(name,self.value(),attrs = attrs))

File "E:\p\lib\site-packages\django\forms\boundfield.py" in as_widget 101. return force_text(widget.render(name, self.value(), attrs=attrs))

文件 E:\p\lib\site-packages\ django\forms\widgets.py在渲染
537中。options = self.render_options([value])

File "E:\p\lib\site-packages\django\forms\widgets.py" in render 537. options = self.render_options([value])

文件 E:\p render_options
560中的 libsitesitepackagesdjangoformswidgets.py,用于self.choic中的option_value,option_label es:

File "E:\p\lib\site-packages\django\forms\widgets.py" in render_options 560. for option_value, option_label in self.choices:

异常类型:/ medicine / add /
的ValueError异常值:没有足够的值可以解包(预期2,得到1)

Exception Type: ValueError at /medicine/add/ Exception Value: not enough values to unpack (expected 2, got 1)


推荐答案

jj_choice = {
    '瓶': '瓶',
    '包': '包',
    '盒': '盒',
}

应写为

jj_choice = (
    ('瓶', '瓶'),
    ('包', '包'),
    ('盒', '盒'),
)

键,文本元组。

这篇关于ValueError:没有足够的值可解包(预期2,得到1)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆