【发布时间】:2009-06-29 18:45:24
【问题描述】:
这个问题很奇怪,希望有人能帮助我。为了论证,我有一个 Author 模型,它与 Book 模型有 ForeignKey 关系。当我显示作者时,我希望有一个仅显示与该作者关联的书籍的 ChoiceField。因此,我重写了 AuthorForm.init() 方法,并根据基于作者 ID 过滤书籍的查询创建了一个选择列表(元组)。元组是书 ID 和书名的组合(即 (1, 'Moby Dick'))。然后将这些“选择”分配给 ModelForm 的选择属性。
当表单在模板中呈现时,ChoiceField 会正确显示,仅列出与该作者关联的书籍。
这就是事情变得奇怪的地方。
当我保存表单时,我收到一个 ValueError (Cannot assign "u'1'":Author.book" must be a Book instance)。由于 FK 关系,这个错误是有道理的。但是,如果我添加一个对代码“打印”语句,不做任何其他更改,然后保存记录,它可以工作。ValueError 神奇地消失了。我已经尝试了很多次,确保我没有无意中进行另一个更改,并且它可以工作每次。
有人知道这里发生了什么吗?
【问题讨论】:
-
你在打印什么?你能展示你的代码吗?