【问题标题】:BoundField' object is not iterable - DjangoBoundField'对象不可迭代 - Django
【发布时间】:2013-05-07 16:46:37
【问题描述】:

forms.py

Date_Format = (
    ('0', ' dd / mm / yyyy'),
    ('1', 'mm / dd / yyyy'),
)    
Time_Format = (
    ('0', ' 12 hour AM / PM '),
    ('1', ' 24 hour '),
)
class SettingsForm(forms.ModelForm):
    date_format = forms.ChoiceField(widget=forms.RadioSelect(), choices=Date_Format)
    time_format = forms.ChoiceField(widget=forms.RadioSelect(), choices=Time_Format)

模板.py

{% for radio in SettingsForm.date_format %}
 {{ radio.choice_label }}
 <div class="select">{{ radio.tag }}</div>
 {% endfor %}

追溯

Template error:
In template /root/Projects/ir/templates/incident/date_format.html, error at line 107
   Caught TypeError while rendering: 'BoundField' object is not iterable
   97 :                 <tr>
   98 :                     <td style="width:200px;">
   99 : 
   100 :                         {{ SettingsForm.date_format }}
   101 :                         {% for radio in form.date_format %}
   102 :                         
   103 :                         <div >{{ radio }}</div>
   104 :                         {% endfor %}
   105 :                     </td>
   106 :                     <td>eg 21 / 01 / 2014 <br /> 
   107 :        {% for date in SettingsForm.time_format %} 
   108 :         {{ date.label_tag }}
   109 :         {{ date }}
   110 :       {% endfor %} 
   113 :                 </tr>
Traceback:
File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/root/Projects/ir/incident/views.py" in date_format
  796.                  context_instance=RequestContext(request))
File "/usr/lib/python2.7/site-packages/django/shortcuts/__init__.py" in render_to_response
  20.     return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File "/usr/lib/python2.7/site-packages/django/template/loader.py" in render_to_string
  188.         return t.render(context_instance)
File "/usr/lib/python2.7/site-packages/django/template/base.py" in render
  123.             return self._render(context)
File "/usr/lib/python2.7/site-packages/django/template/base.py" in _render
  117.         return self.nodelist.render(context)
File "/usr/lib/python2.7/site-packages/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/usr/lib/python2.7/site-packages/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/usr/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  127.         return compiled_parent._render(context)
File "/usr/lib/python2.7/site-packages/django/template/base.py" in _render
  117.         return self.nodelist.render(context)
File "/usr/lib/python2.7/site-packages/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/usr/lib/python2.7/site-packages/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/usr/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  127.         return compiled_parent._render(context)
File "/usr/lib/python2.7/site-packages/django/template/base.py" in _render
  117.         return self.nodelist.render(context)
File "/usr/lib/python2.7/site-packages/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/usr/lib/python2.7/site-packages/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/usr/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  127.         return compiled_parent._render(context)
File "/usr/lib/python2.7/site-packages/django/template/base.py" in _render
  117.         return self.nodelist.render(context)
File "/usr/lib/python2.7/site-packages/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/usr/lib/python2.7/site-packages/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/usr/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  64.             result = block.nodelist.render(context)
File "/usr/lib/python2.7/site-packages/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/usr/lib/python2.7/site-packages/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/usr/lib/python2.7/site-packages/django/template/defaulttags.py" in render
  190.             values = list(values)

Exception Type: TemplateSyntaxError at /member/date-format/
Exception Value: Caught TypeError while rendering: 'BoundField' object is not iterable

我正在使用 django 1.3.7。

由于单选按钮呈现在无序列表中,我使用了单选按钮自定义。

我在自定义单选按钮时收到此错误。

更新:

通常,如果我呈现单选按钮,将在页面中的列表中呈现。如果我希望它在没有该列表格式的情况下显示,即没有项目符号点。如何使用 css 或任何其他技术进行操作

谢谢

【问题讨论】:

  • 请尝试将{% for radio in SettingsForm.date_format %} 改为{% for radio in SettingsForm.date_format.field.choices %}
  • 错误已解决,但单选按钮呈现在列表中,我希望它没有列表
  • 我真的不明白你的意思。你能编辑你的问题来解释一下吗?
  • 我更新了我的问题,请查看我的更新
  • 我仍然不清楚这个问题 - 特别是,我不明白您的 HTML 输出是什么样的。但是,这与您最初的问题无关,因此我建议您创建一个新问题。显示生成的 HTML 并解释为什么它看起来不像您想要的那样是个好主意(一方面,我不确定您的代码是 &lt;div&gt; 还是 &lt;div class="select"&gt; - 它在您的代码和错误回溯)。同时,我将您原始问题的答案添加为答案。

标签: django django-forms django-templates


【解决方案1】:

换行

{% for radio in SettingsForm.date_format %}

{% for radio in SettingsForm.date_format.field.choices %}

【讨论】:

    猜你喜欢
    • 2011-05-08
    • 2021-07-04
    • 2021-02-04
    • 2020-02-28
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 2021-06-09
    相关资源
    最近更新 更多