我的表单中有类别字段:
category = forms.ModelChoiceField(queryset=Category.objects.all().filter(parentCat=None),
widget = forms.Select(attrs = {
'onchange' : "catChanged(this);",
)
)
}
在我添加过滤器之前,一切都很好。然后我添加了一个过滤器来查询所有具有parentCat = None的类别。我现在得到这个错误:
异常类型:TemplateSyntaxError 异常值:渲染时捕获ValueError:list.remove(x):x不在列表中
错误出现在呈现类别字段的模板上:{{form.category}}
<div style="position:relative" > <label> {{ form.category.label }}:</label> {{ form.category }}</div>
任何想法是什么导致了这个问题?
更新: 奇怪的行为。第一次,GET呈现形式,一切都很好;如果我刷新,第二次GET呈现表单我得到上述错误。要重现,我必须停止并重新启动Web服务器!
答案 0 :(得分:1)
此错误似乎是Django中的错误或非rel的查询调整。
模块backends.py中发生错误 - 在查询ForiegnKeys时,有一个问题是null -
失败的一行是:
query.table_map[table_name].remove(alias)
我把它改成了
try:
query.table_map[table_name].remove(alias)
except:
pass
此更改基本上忽略了该行中的任何错误。 一切都按预期进行;虽然我不确定错误发生的原因,但这种改变似乎解决了这个问题。