【问题标题】:TypeError while rendering: 'long' object is not iterable渲染时出现类型错误:“长”对象不可迭代
【发布时间】:2011-12-10 23:52:27
【问题描述】:

我有一些具有一些 ForeignKey 关系的模型。

通过 forms.py 我添加了一个 ModelMultipleChoiceField 小部件

class VariableFieldForm(ModelForm):
    custom_field = forms.ModelMultipleChoiceField(queryset=VariableField.objects.all(), widget=FilteredSelectMultiple("Custom Fields", is_stacked=False))

    class Meta:
        model = VariableField

当尝试访问已保存的记录 localhost:8000/admin/product/subcategory/3/ 或保存新记录时,我得到以下回溯

File "/opt/python2.6/lib/python2.6/site-packages/django/utils/encoding.py" in force_unicode
  71. s = unicode(s)
File "/opt/python2.6/lib/python2.6/site-packages/django/forms/forms.py" in __unicode__
  408. return self.as_widget()
File "/opt/python2.6/lib/python2.6/site-packages/django/forms/forms.py" in as_widget
  439. return widget.render(name, self.value(), attrs=attrs)
File "/opt/python2.6/lib/python2.6/site-packages/django/contrib/admin/widgets.py" in render
  39. output = [super(FilteredSelectMultiple, self).render(name, value, attrs, choices)]
File "/opt/python2.6/lib/python2.6/site-packages/django/forms/widgets.py" in render
  581. options = self.render_options(choices, value)
File "/opt/python2.6/lib/python2.6/site-packages/django/forms/widgets.py" in render_options
  531. selected_choices = set([force_unicode(v) for v in selected_choices])

Exception Type: TemplateSyntaxError at /admin/product/subcategory/3/
Exception Value: Caught TypeError while rendering: 'long' object is not iterable

我正在使用 Django 1.3 和 MySQL

关于如何解决的想法?

【问题讨论】:

    标签: django django-forms django-modeladmin


    【解决方案1】:

    最终我使用了 ForeignKey,而不是 ManyToManyField 关系。

    希望这对以后的任何问题有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-20
      • 2012-10-30
      • 2021-11-26
      • 2017-03-05
      • 2021-03-02
      • 2020-04-18
      • 1970-01-01
      • 2022-12-06
      相关资源
      最近更新 更多