AppEngine/Django:在管理应用程序中编辑 db.Key
或者,准确地说,如何使用 Django 的 app-engine-patch 正确呈现表单以在模型管理页面上编辑 db.Keys 的 db.ListProperty?
我有一个像这样的 Category
:
class Category(db.Model):
title = db.CategoryProperty(required=True)
和一个 Post
:
categories = db.ListProperty(db.Key)
当前在 Django 管理页面中,该字段显示为包含 Python 列表对象字符串的文本框,这是错误的并中断保存:
[datastore_types.Key.from_path(u'blog_category', 3L, _app_id_namespace=u'xyz')]
所以我不得不在我的 ModelAdmin 类中“排除”它。我想过编写一个 ModelForm 来手动连接类别 db.Keys 并将它们呈现为 Django 多选小部件,但我怀疑有更简单的方法可以做到这一点...
Or, to be precise, how do I properly present a form to edit a db.ListProperty of db.Keys on a model admin page, with app-engine-patch for Django?
I have a Category
like this:
class Category(db.Model):
title = db.CategoryProperty(required=True)
and a Post
with this:
categories = db.ListProperty(db.Key)
Currently in the Django admin page the field is shown as a textbox containing the Python list object string, which is wrong and breaks saving:
[datastore_types.Key.from_path(u'blog_category', 3L, _app_id_namespace=u'xyz')]
So I've had to 'exclude' it in my ModelAdmin class. I've thought of writing a ModelForm that manually to wire up the Category db.Keys and present them as a Django multiselect widget, but I suspect there are easier ways to do it...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
更彻底地阅读了 App-engine-patch 文档后,似乎使用 ragendja.dbutils.KeyListProperty 解决了这个问题,旧的 Django 多选列表也是如此。 :)
新代码:
Having read through the App-engine-patch docs more thoroughly, seems that using
ragendja.dbutils.KeyListProperty
answers this problem, with the old Django multiselection list too. :)New code: