ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

模板渲染期间解包的值太多

2019-10-14 02:59:44  阅读:153  来源: 互联网

标签:python forms django django-forms


我现在正在学习Django,遇到了这个错误,我对此有些困惑.我正在尝试将表格添加到我的主页上

我收到此错误:

码:

家用/ views.py:

from django.shortcuts import render
from forms import TestForm
from django.http import HttpResponseRedirect

def home(request):
    if request == 'POST':
        # create a form instane and populate it with data from the request
        form = TestForm(request.POST)
        if form.is_valid():
            # process the data in form.cleaned_data as required
            form.cleaned_data()
            # redirect to a new URL:
            return HttpResponseRedirect('/test/')
    # if a GET (or any other method) we'll create a blank form
    else:
        form = TestForm()
    return render(request, 'home/home_page.html', {'form': form})


def scan_events(request):
    if request == "POST":
        # json = request.POST['testData']
        # condition statement for file upload ot c/p events

        return render(request, 'home/test.html', {'data': request.POST})


def test(request):
    request(request, 'home/test.html')

家用/ forms.py

from django import forms

TEST_TYPE_CHOICES = ('HDFS', 'HIVE', 'BOTH')

class TestForm(forms.Form):
    # hdfs_test = forms.MultipleChoiceField()
    # hive_test = forms.MultipleChoiceField()
    # hdfs_hive_test = forms.MultipleChoiceField()
    test_type = forms.MultipleChoiceField(required=True, widget=forms.RadioSelect(), choices=TEST_TYPE_CHOICES)
    event_textarea = forms.Textarea(attrs={'rows': '8', 'class': 'form-control', 'placeholder': 'Events...', 'id': 'event_textarea'})
    # file_upload = forms.FileInput()

urls.py:

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', 'home.views.home', name='home'),
    url(r'test/$', 'home.views.test'),

)

家用/模板/家/ home_page.html

{% extends 'index/index.html' %}

{% load staticfiles %}
{% block head %}
  <script type="text/javascript" src="{{ STATIC_URL }}home/js/home.js" async></script>
  <link href="{{ STATIC_URL }}home/css/home.css" rel="stylesheet">
{% endblock head %}

{% block content %}

  <div>Welcome to Trinity E2E testing</div>

  <form id="test-form" action="/test/" method="post"> {# pass data to /test/ URL #}
    {% csrf_token %}

    {{ form }}

    <input id="submit-test" type="submit" class="btn btn-default btn-lg" value="Submit">
  </form>

{% endblock content %}

解决方法:

choices应该是键描述对的序列(准确地说是可迭代的).

TEST_TYPE_CHOICES = [
    ('HDFS', 'HDFS'),
    ('HIVE', 'HIVE'),
    ('BOTH', 'Both of HDFS and HIVE'),
]

错误消息的说明:

字符串也是序列.因此,使用选择的代码将字符串视为4个字符的序列(确切地说是字符串,因为Python中没有字符类型).这就是为什么会出现错误:太多值无法解包的原因

>>> a, b = ('HDFS', 'HDFS')
>>> a, b = 'HDFS'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack

如果所有字符串都是2个字符的字符串,它将隐藏(但不能解决)问题.

>>> a, b = 'HD'
>>> a
'H'
>>> b
'D'

标签:python,forms,django,django-forms
来源: https://codeday.me/bug/20191014/1912018.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有