AppEngine/Django:在管理应用程序中编辑db.Key
或者,更准确地说,我如何使用适用于Django的应用程序引擎补丁在模型管理页面上正确地呈现一个表单来编辑db.Keys的db.ListProperty 我有这样一个类别:AppEngine/Django:在管理应用程序中编辑db.Key,django,google-app-engine,app-engine-patch,Django,Google App Engine,App Engine Patch,或者,更准确地说,我如何使用适用于Django的应用程序引擎补丁在模型管理页面上正确地呈现一个表单来编辑db.Keys的db.ListProperty 我有这样一个类别: class Category(db.Model): title = db.CategoryProperty(required=True) 还有一个帖子是这样写的: categories = db.ListProperty(db.Key) 当前在Django管理页面中,该字段显示为包含Python列表对象字符串的文本
class Category(db.Model):
title = db.CategoryProperty(required=True)
还有一个帖子是这样写的:
categories = db.ListProperty(db.Key)
当前在Django管理页面中,该字段显示为包含Python列表对象字符串的文本框,这是错误的,会中断保存:
[datastore_types.Key.from_path(u'blog_category', 3L, _app_id_namespace=u'xyz')]
所以我不得不在ModelAdmin类中“排除”它。我曾想过编写一个模型表单,手动连接类别db.Keys并将其作为Django multiselect小部件呈现,但我怀疑有更简单的方法来实现…更彻底地阅读了应用程序引擎补丁文档,似乎使用ragendja.dbutils.KeyListProperty解决了这个问题,还有老的Django选举名单: 新代码:
categories = KeyListProperty(Category)