如何从具有ListProperty的Model创建Form

REA*_*REW 2 python django google-app-engine

我目前正在使用带有Google App Engine的Django表单,我有一个模型如下:

class Menu(db.Model):
    name = db.StringProperty(required=True)
    is_special = db.BooleanProperty()
    menu_items =  db.ListProperty(MenuItem)
Run Code Online (Sandbox Code Playgroud)

我有一个MenuForm,如下所示:

class MenuForm(djangoforms.ModelForm):
    class Meta:
        model = Menu
        exclude = ['added_by','menu_items']
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我收到以下错误:

Exception Type:     ValueError
Exception Value:    Item type MenuItem is not acceptable
Run Code Online (Sandbox Code Playgroud)

我想创建表单并省略menu_items属性,因为我不认为有多个选项的内置控件,如一组复选框.无论哪种方式,我无法理解排除项目中的此属性为什么它会抛出此错误.

TIA

安德鲁

Ale*_*lli 5

你的问题就来了之前以及在"创建表单"任务开始:ListProperty容许模型实体的名单(虽然我无法找到这清楚地记录在App Engine文档,我还在寻找在文档中的好,关于这一点的明确,明确的陈述.尝试将其更改为(比方说)字符串列表,您将看到一切正常(我相信如果您不排除此类属性,则会获得下拉列表).

编辑:找到了提到问题的文档中的位置,虽然它是古怪的措辞 - 引用更加强调:

该列表可以包含数据存储区支持的任何类型的.

... 就是说,你可以在任何类型的列表对象中拥有...而不是引用的,即作为某个模型实例的实体.

您可以使用关键字符串列表,而不是......?