我目前正在使用带有Google App Engine的Django表单,我的模型如下:
class Menu(db.Model):
name = db.StringProperty(required=True)
is_special = db.BooleanProperty()
menu_items = db.ListProperty(MenuItem)
我有一个以下的MenuForm:
class MenuForm(djangoforms.ModelForm):
class Meta:
model = Menu
exclude = ['added_by','menu_items']
当我运行时,我收到以下错误:
Exception Type: ValueError
Exception Value: Item type MenuItem is not acceptable
我想创建表单,并省略了menu_items属性,因为我不认为有多个选项的内置控件,如一组复选框。无论哪种方式,我都无法理解排除项目中的此属性为什么会抛出此错误。
TIA
安德鲁
答案 0 :(得分:5)
在“创建表单”任务开始之前,问题就出现了:ListProperty
不允许模型实体列表(尽管我在应用程序中无法清楚地记录这一点)引擎文档,我仍然在文档中查找关于该文档的一个好的,清晰的,明确的声明。尝试将其更改为(比方说)字符串列表,您将看到一切正常(我相信如果您不排除此类属性,则会获得下拉列表。)
修改:找到提及问题的docs中的位置,虽然它的措辞比较古怪 - 引用更加强调:
列表可以包含任何值 支持的值类型 数据存储。
...点是,您可以在列表中包含任何值类型的对象...而不是引用那些,即实体是一些模特。
您可以使用关键字符串列表,而不是......?