Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Crispy表单呈现问题';无法将字典更新序列元素#0转换为序列';_Django_Django Crispy Forms - Fatal编程技术网

Django Crispy表单呈现问题';无法将字典更新序列元素#0转换为序列';

Django Crispy表单呈现问题';无法将字典更新序列元素#0转换为序列';,django,django-crispy-forms,Django,Django Crispy Forms,努力想弄明白这一点。我看到了一些问题,其中显示了此错误代码,但所有问题似乎都与未将数据传递到要呈现的模板上下文有关。我知道我的数据正在进入模板。酥脆的表单一定是在幕后做了什么,这让我很反感?奇怪的是,这在20分钟前就起作用了。我不知道我能改变什么,会影响这一切 以下是我的看法: class ContactListView(View): template = 'support_tracker/contact_list.html' def get(self,request,*ar

努力想弄明白这一点。我看到了一些问题,其中显示了此错误代码,但所有问题似乎都与未将数据传递到要呈现的模板上下文有关。我知道我的数据正在进入模板。酥脆的表单一定是在幕后做了什么,这让我很反感?奇怪的是,这在20分钟前就起作用了。我不知道我能改变什么,会影响这一切

以下是我的看法:

class ContactListView(View):

    template = 'support_tracker/contact_list.html'

    def get(self,request,*args,**kwargs):
        staff_id = kwargs.pop('staff_id',False)

        if staff_id:
            staff = Staff.objects.get(pk=staff_id)
        else:
            staff = request.user.staff
        contact_list = staff.contacts.all()

        search_term = request.GET.get('search_term',False)
        sort_by = request.GET.get('sort_by',False)
        filter_by = request.GET.get('filter_by',False)

        ##applying search term to determine contact_list
            ...
        ##

        ##sorting of contact_list
            ....
        ##

        ##filtering of contact_list
            ....
        ##

        search_form = SearchForm()
        sort_form = ContactListSortForm()
        filter_form = FilterByStageForm()

        ##pagination to determine contacts
            ...
        ##

        context = {
        'staff':staff,
        'contacts':contacts,
        'search_form':search_form,
        'sort_form':sort_form,
        'filter_form':filter_form,
        'filter_by':filter_by,
        'search_term':search_term,
        'sort_by':sort_by,
        }

        print context

        return render(request,self.template,context)
我的表格:

##forms.py
class SearchForm(forms.Form):
    search_term = forms.CharField(max_length=30,label='')

    def __init__(self,*args,**kwargs):
        super(SearchForm,self).__init__(*args,**kwargs)
        self.helper = FormHelper()
        self.helper.form_class = 'form-inline'
        self.helper.form_method = 'GET'
        self.helper.field_template = 'bootstrap3/layout/inline_field.html'
        self.helper.layout = Layout(
            InlineField('search_term',placeholder='Search'),
            Submit('','Go',css_class='btn btn-primary'),
            )

class FilterByStageForm(forms.Form):
        filter_by = forms.ChoiceField(choices=get_stage_option_list(),required=False)

    def __init__(self,*args,**kwargs):
        super(FilterByStageForm,self).__init__(*args,**kwargs)
        self.helper = FormHelper()
        self.helper.form_class = 'form-inline'
        self.helper.form_method = 'GET'
        self.helper.field_template = 'bootstrap3/layout/inline_field.html'
        self.helper.layout = Layout(
            InlineField('filter_by',placeholder='Filter By'),
            Submit('','Filter',css_class='btn btn-primary'),
            )

class ContactListSortForm(forms.Form):
    sort_by = forms.ChoiceField(choices=(##options),required=False)

    def __init__(self,*args,**kwargs):
        super(ContactListSortForm,self).__init__(*args,**kwargs)
        self.helper = FormHelper()
        self.helper.form_class = 'form-inline'
        self.helper.form_method = 'GET'
        self.helper.field_template = 'bootstrap3/layout/inline_field.html'
        self.helper.layout = Layout(
            InlineField('sort_by',placeholder='Sort By'),
            Submit('','Sort',css_class='btn btn-primary'),
            )
我的模板:

{% extends 'co_tools/base.html' %}
{% load crispy_forms_tags %}

{% block content %}
<div class='container'>
    <div class='col-md-3 well'>
        <h3><u>Search:</u></h3>


        ## This is the part that trips it up. If I take the forms out, the rest of the page loads fine
        {% crispy search_form %}
        {% crispy sort_form %}
        {% crispy filter_form %}


        <a href='/support/new_contact/' class='btn btn-primary'>New Contact</a>
    </div>

    ...body...

</div>
{% endblock content %}
{%extends'co_tools/base.html%}
{%load crispy_forms_tags%}
{%block content%}
搜索:
##这是绊倒它的部分。如果我把表格拿出来,页面的其余部分就可以加载了
{%crispy search_form%}
{%crispy sort_form%}
{%crispy filter_form%}
…身体。。。
{%endblock内容%}
完全回溯

Request Method: GET
Request URL: http://127.0.0.1:8000/support/contact_list/

Django Version: 1.10.2
Python Version: 2.7.11
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'crispy_forms',
 'support_tracker',
 'donor_reports',
 'staff',
 'financial_reports']
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']


Template error:
In template C:\...\project\support_tracker\templates\support_tracker\contact_list.html, error at line 8
   cannot convert dictionary update sequence element #0 to a sequence   1 : {% extends 'co_tools/base.html' %}
   2 : {% load crispy_forms_tags %}
   3 : 
   4 : {% block content %}
   5 : <div class='container'>
   6 :  <div class='col-md-3 well'>
   7 :      <h3><u>Search:</u></h3>
   8 :       {% crispy form %} 
   9 :      <a href='/support/new_contact/' class='btn btn-primary'>New Contact</a>
   10 :     </div>
   11 :     <div class='col-md-9'>
   12 :         <table class='table table-condensed table-hover'>
   13 :             <thead>
   14 :                 <th>Contact Name</th>
   15 :                 <th>Phone Number</th>
   16 :                 <th>Email</th>
   17 :                 <th>Street Address</th>
   18 :                 <th>City</th>


Traceback:

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

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

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

File "C:\...\project\env\lib\site-packages\django\views\generic\base.py" in view
  68.             return self.dispatch(request, *args, **kwargs)

File "C:\...\project\env\lib\site-packages\django\views\generic\base.py" in dispatch
  88.         return handler(request, *args, **kwargs)

File "C:\...\project\support_tracker\views.py" in get
  185.      return render(request,self.template,context)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

File "C:\...\project\env\lib\site-packages\crispy_forms\templatetags\crispy_forms_tags.py" in render
  215.         c = self.get_render(context)

File "C:\...\project\env\lib\site-packages\crispy_forms\templatetags\crispy_forms_tags.py" in get_render
  126.         response_dict = self.get_response_dict(helper, context, is_formset)

File "C:\...\project\env\lib\site-packages\crispy_forms\templatetags\crispy_forms_tags.py" in get_response_dict
  160.         attrs = helper.get_attributes(template_pack=self.template_pack)

File "C:\...\project\env\lib\site-packages\crispy_forms\helper.py" in get_attributes
  364.         if self.form_action:

File "C:\...\project\env\lib\site-packages\crispy_forms\helper.py" in form_action
  237.             return reverse(self._form_action)

File "C:\...\project\env\lib\site-packages\django\urls\base.py" in reverse
  91.     return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))

File "C:\...\project\env\lib\site-packages\django\urls\resolvers.py" in _reverse_with_prefix
  344.             self._populate()

File "C:\...\project\env\lib\site-packages\django\urls\resolvers.py" in _populate
  217.                                     dict(defaults, **pattern.default_kwargs),

Exception Type: TypeError at /support/contact_list/
Exception Value: cannot convert dictionary update sequence element #0 to a sequence
请求方法:获取
请求URL:http://127.0.0.1:8000/support/contact_list/
Django版本:1.10.2
Python版本:2.7.11
已安装的应用程序:
['django.contrib.admin',
“django.contrib.auth”,
“django.contrib.contenttypes”,
“django.contrib.sessions”,
“django.contrib.messages”,
“django.contrib.staticfiles”,
“脆皮形式”,
“支持跟踪程序”,
“捐赠者报告”,
"职员",,
“财务报告”]
已安装的中间件:
['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.xframeoptions中间件']
模板错误:
在模板C:\…\project\support\u tracker\templates\support\u tracker\contact\u list.html中,第8行出现错误
无法将字典更新序列元素#0转换为序列1:{%extends'co_tools/base.html%}
2:{%load crispy_forms_tags%}
三:
4:{%block content%}
5 : 
6 :  
7:搜索:
8:{%crispy form%}
9 :      
10 :     
11 :     
12 :         
13 :             
14:联系人姓名
15:电话号码
16:电子邮件
17:街道地址
18:城市
回溯:
文件“C:\…\project\env\lib\site packages\django\core\handlers\exception.py”位于内部
39响应=获取响应(请求)
文件“C:\…\project\env\lib\site packages\django\core\handlers\base.py”位于\u get\u响应中
187response=self.process\u异常\u由\u中间件(e,请求)
文件“C:\…\project\env\lib\site packages\django\core\handlers\base.py”位于\u get\u响应中
185响应=包装的回调(请求,*回调参数,**回调参数)
视图中的文件“C:\…\project\env\lib\site packages\django\views\generic\base.py”
68返回自调度(请求,*args,**kwargs)
文件“C:\…\project\env\lib\site packages\django\views\generic\base.py”在dispatch中
88返回处理程序(请求、*args、**kwargs)
get中的文件“C:\…\project\support\u tracker\views.py”
185返回呈现(请求、self.template、上下文)
render中的文件“C:\…\project\env\lib\site packages\django\shortcuts.py”
30content=loader.render_to_string(模板名称、上下文、请求、using=using)
render\u to\u字符串中的文件“C:\…\project\env\lib\site packages\django\template\loader.py”
68返回template.render(上下文、请求)
render中的文件“C:\…\project\env\lib\site packages\django\template\backends\django.py”
66返回self.template.render(上下文)
render中的文件“C:\…\project\env\lib\site packages\django\template\base.py”
208返回self.\u呈现(上下文)
文件“C:\…\project\env\lib\site packages\django\template\base.py”位于\u render中
199返回self.nodelist.render(上下文)
render中的文件“C:\…\project\env\lib\site packages\django\template\base.py”
994位=节点。带注释的渲染(上下文)
render\u注释中的文件“C:\…\project\env\lib\site packages\django\template\base.py”
961返回self.render(上下文)
render中的文件“C:\…\project\env\lib\site packages\django\template\loader\u tags.py”
174返回编译的\u父对象。\u呈现(上下文)
文件“C:\…\project\env\lib\site packages\django\template\base.py”位于\u render中
199返回self.nodelist.render(上下文)
render中的文件“C:\…\project\env\lib\site packages\django\template\base.py”
994位=节点。带注释的渲染(上下文)
render\u注释中的文件“C:\…\project\env\lib\site packages\django\template\base.py”
961返回self.render(上下文)
render中的文件“C:\…\project\env\lib\site packages\django\template\loader\u tags.py”
70结果=block.nodelist.render(上下文)
render中的文件“C:\…\project\env\lib\site packages\django\template\base.py”
994位=节点。带注释的渲染(上下文)
render\u注释中的文件“C:\…\project\env\lib\site packages\django\template\base.py”
961返回self.render(上下文)
render中的文件“C:\…\project\env\lib\site packages\crispy\u forms\templatetags\crispy\u forms\u tags.py”
215c=自获取渲染(上下文)
get\u render中的文件“C:\…\project\env\lib\site packages\crispy\u forms\templatetags\crispy\u forms\u tags.py”
126response\u dict=self.get\u response\u dict(helper,context,is\u formset)
获取响应目录中的文件“C:\…\project\env\lib\site packages\crispy\u forms\templatetags\crispy\u forms\u tags.py”
160attrs=helper.get\u属性(template\u pack=self.template\u pack)
get\u属性中的文件“C:\…\project\env\lib\site packages\crispy\u forms\helper.py”
364如果自我形式行动:
文件“C:\…\project\env\lib\site packages\crispy\u f
urlpatterns = [
     ...
    #meeting urls
    url(r'^record_meeting/(?P<meeting_id>[0-9]+)/',views.EditMeetingView.as_view(),{'record':True}),
    url(r'^record_meeting/$',views.EditMeetingView.as_view(),{'record':True}),
    url(r'^edit_meeting/(?P<meeting_id>[0-9]+)/',views.EditMeetingView.as_view(),{'record':False}),
    url(r'^add_meeting/$',views.EditMeetingView.as_view()),
]