问题标签 [app-engine-ndb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2470 浏览

google-app-engine - NDB 中反向引用属性的替代方法是什么?

我已经阅读了这个问题和简单明了的答案,但在我的情况下它没有用,因为答案不考虑嵌套的for. 请看代码:

处理程序:

在模板中,使用旧的 db.Model 和反向引用属性就足够了:

为这种数据结构提供服务的同样简单的替代方案是什么?

0 投票
1 回答
655 浏览

python - 应用引擎 NDB:如何访问属性的详细名称

假设我有这个代码:

当然,如果我打印 m.prop,它将输出“一个字符串值”,而实际上它是一个 StringProperty 实例。所以 verbose_name 不能以“正常”方式访问,即m.prop._verbose_name.
我阅读了代码并找到了访问它的方法:m._properties["prop"]._verbose_name,它可以工作,但它看起来很hacky o_o。
所以告诉我,还有其他方法吗?
注意:我说的是 NDB API,而不是旧 API

0 投票
3 回答
1162 浏览

python - ndb 模型 appengine 的 ModelForms(djangoforms 不适合我)

我正在使用 webapp2,ndb 模型。
我试图将 django 模型表单与 ndb 模型一起使用。以下是我的设置中的相关部分:

应用程序.yaml:

模型.py:

表格.py:

处理程序:

我得到的错误是: AttributeError: type object 'SubTask' has no attribute '_meta'

我的问题:有没有办法可以将 django 模型表单与 ndb 一起使用,或者如果我犯了一个错误,那是什么?如果不是 django modelforms,ndb 模型是否适用于 WTForms?

下面附上堆栈跟踪:

0 投票
1 回答
4438 浏览

google-app-engine - ndb 根据 KeyProperty 实例查询模型

我有一个简单的ndb模型如下:

众所周知,一个 TaskList 对象将有一个Entity Kind Entity Key和一个ID。给定一个 ID 为 7。我可以很好地获取 ID 为 7 的对象,如下所示:

但是我如何获得任务 ID 为 7 的用户?

我试过:

它有效,但有更好的方法吗?

0 投票
2 回答
1084 浏览

google-app-engine - ndb 模型与 WTForms 的兼容性

技术堆栈:ndb 模型WTFormswebapp2 我正在尝试将 WTForms 扩展用于 appengine db 模型。

我有一个简单的数据库架构:

然后是一个简单的表单定义表单 WTForms,在处理程序中根据他们的文档:

这会在此处引发属性错误行 411 props = model.properties()

请让我知道,如果这可以解决。

0 投票
1 回答
187 浏览

google-app-engine - 什么会导致 prod 和 dev 之间的这种差异?

相同的代码,在生产中在开发中不起作用是的。

楷模:

处理程序:

模板:

追溯(仅在生产中):

即使comput_list有实体也会出现。

更新:没有为成员自动生成索引,我尝试手动添加但没有任何变化

0 投票
1 回答
281 浏览

google-app-engine - 如何使用ndb的OR?

我有以下代码:

但我收到错误:

顺便说一句,如果passport_id is NoneEmployee.passport_id is None. 它会找到这样的匹配吗?

更新。通过添加解决了第一个问题

第二个问题仍然存在..

0 投票
0 回答
131 浏览

google-app-engine - 如何避免使用 GAE NDB 返回 None 值?

我有如下复杂的 NDB 查询:

当前,当数据库值为None且我的值为时None,将返回此类实体。我怎样才能避免这种情况?我想我可以做类似的事情(对于每个领域):

但它看起来不是很好。

0 投票
2 回答
802 浏览

google-cloud-datastore - 如何在 NDB 中进行批处理操作是更新 ndb 的原子或锁定记录

我是谷歌应用引擎和 NDB 的初学者。我的问题:如果我在模型中有 1 个实体,我想在 2 个并行操作时防止冲突,代码示例:

操作1:

操作2:

如果 2 个会话并行调用 2 个操作,并且在操作之前,实体(id=1)的计数 = 0。我想防止计数值冲突,例如:

ndb 中的 count=20。ndb 中 count=30 的期望值。

请告诉我解决方案。

0 投票
1 回答
2787 浏览

google-app-engine - get_by_id 和父键

我曾经使用get_by_id从数据存储中获取实体,但从不使用Ancestor Paths。但是我的模型的复杂性使它变得很有必要。事实上,祖先路径解决了一个大问题,但现在当我尝试get_by_id实体返回None时,如果实体具有父键。这意味着我需要添加父键:

这将变成:

如何构建父密钥?

编辑:

在这一点上,我更喜欢留下祖先路径并添加另一个 keyproperty。