与Django MultiValueField的麻烦

时间:2010-12-04 17:53:49

标签: django google-app-engine

我正在使用Django 1.0.2的拉链在Google应用引擎上编写应用,因为我正在使用appengine补丁。 (是的,这是一个旧设置。)

我正在尝试实现MultiValueField并且它无法正常工作。例如,我从http://www.hoboes.com/Mimsy/hacks/django-forms-edit-inline/multiwidgets-templates/中获取了完整的代码,并将CMSChangeFields放入我的表单中,如下所示

# In models
class Foo(db.Model):
  foo = db.StringProperty()
  bar = db.StringProperty()

# In forms
class FooForm(djangoforms.ModelForm):
  foo = fields.CMSChangeFields()
  class Meta:
    model = models.Foo

如果我在FooForm中注释掉foo,我会看到两个编辑字段。如果我留下foo,我会看到“[[UNDEFINED VARIABLE]]”,这是我在settings.py中设置的TEMPLATE_STRING_IF_INVALID。

发生了什么事?

我看到Foo.foo和FooForm.foo类型之间可能存在不匹配,但我不确定。

或者,我该如何调试呢?我一直在覆盖字段,表格等的 init 方法,并记录事物,但我不知道有什么不妥。

如果我尝试使用调试器,它实际上需要10分钟才能启动,并使用错误的源文件(Django的google_appengine版本而不是我的zip文件),即使我已经完成了项目仔细设置。我所说的是调试器无视我。

1 个答案:

答案 0 :(得分:0)

如果有人遇到过此问题,我的问题是从我的小部件解压缩中返回None。来自解压缩的任何值必须与MultiWidget中的小部件具有相同数量的可下载值(在我的情况下为两个)。如果foo为None,那么foo [1]就不好了。不幸的是,Django 1.0.2报告了一个空值的问题。