2016-11-10 1 views
2

으로 변환 할 수 없습니다.이 것을 파악하기 위해 고심하고 있습니다. 이 오류 코드가 나타나는 몇 가지 문제를 보았지만 모두 렌더링 할 템플릿의 컨텍스트에 전달되지 않는 데이터와 관련이있는 것처럼 보입니다. 내 데이터가 템플릿으로 전달되고 있음을 알고 있습니다. 파삭 파삭 한 모양은 저를 던지고있는 장면의 뒤에 무언가를하고 있어야 하는가? 이상한 일은 문자 그대로 20 분 전에 일했습니다. 나는 이것이 내가 영향을 미칠 수있는 바를 모릅니다.Django Crispy Forms Rendering Issue '사전 업데이트 시퀀스 요소 # 0을 시퀀스'

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

전체 역 추적

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 
여기

내이다

나는 이것이 무엇을 일으키는 지 전혀 모른다. 어떤 도움이라도 대단히 감사하겠습니다.

+0

더 많은 정보를위한 업데이트와 마찬가지로 템플릿에 양식을 렌더링 할 때'{% crispy form %} '을 사용할 때마다이 오류가 발생한다는 것을 알게되었습니다. – Nikolai0045

답변

0

좋아, 문제가 해결되었습니다. 나는이 특정 비트의 코드가 왜 문제를 일으키는 지 전혀 알지 못합니다. 내 urls.py에서

, 나는

django.conf.urls 수입 URL에서

이 수입 전망

를 포함 ... 다음 네 URL 표현식을 추가 한 네 번째 사람이 처음이었다
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()), 
] 

명백히 시행 착오를 토대로이 문제를 일으키는 것은 url(r'^add_meeting/$',views.EditMeetingView.as_view(),{'record':False})입니다. 추가 인수를 제거한 후에는 문제가 해결되었습니다. 왜 이것이 이것이 처음 문제 였는지 아는 사람이 있습니까? 나는 아직도 이해하지 못한다.

관련 문제