AppEngine/Django:在管理应用程序中编辑 db.Key

发布于 2024-08-06 18:49:21 字数 610 浏览 3 评论 0原文

或者,准确地说,如何使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

残疾 2024-08-13 18:49:21

更彻底地阅读了 App-engine-patch 文档后,似乎使用 ragendja.dbutils.KeyListProperty 解决了这个问题,旧的 Django 多选列表也是如此。 :)

新代码:

categories = KeyListProperty(Category)

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:

categories = KeyListProperty(Category)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文