- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想将位置存储在 Google 的数据存储区中。每个条目应具有“sys”字段,其中应包含数据存储设置的信息。我有下面的类模型,并且 WebService JSON 请求/响应看起来不错,但我必须手动设置值。看起来 auto_current_user_add
、auto_now_add
、auto_current_user
和 auto_now
不会触发。
from google.appengine.ext import ndb
from endpoints_proto_datastore.ndb import EndpointsModel
class Created(EndpointsModel):
by = ndb.UserProperty(auto_current_user_add=True)
on = ndb.DateTimeProperty(auto_now_add=True)
class Updated(EndpointsModel):
by = ndb.UserProperty(auto_current_user=True)
on = ndb.DateTimeProperty(auto_now=True)
class Sys(EndpointsModel):
created = ndb.StructuredProperty(Created)
updated = ndb.StructuredProperty(Updated)
class Location(EndpointsModel):
name = ndb.StringProperty(required=True)
description = ndb.TextProperty()
address = ndb.StringProperty()
sys = ndb.StructuredProperty(Sys)
当我提交创建请求 (location.put()
) 时,我收到以下响应:
{
"id": "4020001",
"name": "asdf"
}
当我使用手动设置时:
location.sys = Sys(created=Created(on=datetime.datetime.now(),
by=current_user),
updated=Updated(on=datetime.datetime.now(),
by=current_user))
location.put()
我得到了预期的结果:
{
"id": "4020002",
"name": "asdf",
"sys": {
"created": {
"by": {
"auth_domain": "gmail.com",
"email": "decurgia@XYZ"
},
"on": "2015-01-27T16:05:41.465497"
},
"updated": {
"by": {
"auth_domain": "gmail.com",
"email": "decurgia@XYZ"
},
"on": "2015-01-27T16:05:41.465577"
}
}
}
如何获取这些字段(sys.created.on
、sys.created.by
、sys.updated.on
、sys.updated.by
) 自动设置?
最佳答案
在我使用 StructuredProperty
进行的有限工作中,我发现它比简单地将属性直接插入到模型中更慢且更难使用。 NDB 似乎单独存储这些属性并在检索它们时执行“连接”。我的建议是使用“平面”模型:
class Location(EndpointsModel):
name = ndb.StringProperty(required=True)
description = ndb.TextProperty()
address = ndb.StringProperty()
created_by = ndb.UserProperty(auto_current_user_add=True)
created_on = ndb.DateTimeProperty(auto_now_add=True)
updated_by = ndb.UserProperty(auto_current_user=True)
updated_on = ndb.DateTimeProperty(auto_now=True)
这应该会导致自动触发 auto_
属性。
关于python - ndb.StructuredProperty 中的自动字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28168682/
我有一个实体,其中有一个可变数量的另一个实体(所以我使用结构化属性,repeated=True),但是一个属性也可以容纳可变数量的单一实体类型。所以我的代码看起来像这样: class Property
虽然 NDB 文档说: Although a StructuredProperty can be repeated and a StructuredProperty can contain anoth
我的模型都有一个将模型转换为字典的方法: def to_dict(model): output = {} SIMPLE_TYPES = (int, long, float, bool,
StructuredProperty 是否引用父级或子级? class Invoices(ndb.Model): #Child class Customers(ndb.Model): #Parent
StructuredProperty 上没有 populate 方法(如 ndb.Model 上的方法),那么如何从字典中填充这些字段? 最佳答案 您仍然可以填充StructuredProperty。
我读过很多关于这两者的文章 ndb.StructuredProperty在 App Engine 的 NDB 中以及 ancestor queries 的使用将相关实体分组在一起。 但是,我不确定我是
我想将位置存储在 Google 的数据存储区中。每个条目应具有“sys”字段,其中应包含数据存储设置的信息。我有下面的类模型,并且 WebService JSON 请求/响应看起来不错,但我必须手动设
在一个汽车历史应用程序中,我必须创建不同的图表,其中某些车型可能会出现在一个或多个不同的图表中,如“最快的汽车”、“最好的汽车”等。然后必须在图表中对它们进行排序。我使用 StructuredProp
这里是 StructuredProperty from the docs 的示例: class Address(ndb.Model): type = ndb.StringProperty()
我有一个 HUser 模型(派生自 Google 的 User 类),它又包含 0 到 n 个社交帐户实例。这些帐户可以是对 Facebook、Twitter 或 LinkedIn 帐户的引用。我已经
假设我有一个 ndb.Model 类,我想将其用作另一个模型类的 StructuredProperty: class CommonExtraData(ndb.Model): count = n
这是我的ndb模型 from google.appengine.ext import ndb from mainsite.rainbow.models.CFCSocialUser import CFC
使用appengine mapreduce lib时,如何通过StructuredProperty进行过滤? 我尝试过: class Tag(ndb.Model): # ... tag
我正在尝试使用 Expando模型作为重复 StructuredProperty在另一个模型中。即,我想添加不定数量的Accounts给我的User模型。如Accounts根据其类型可以具有不同的属性
我使用 Google App Engine 进行后端开发,并使用数据存储模型和 Google Cloud Storage 来存储图像对象。这是我的媒体模型 class Media(ndb.Model)
我有一个 ndb.Model,其中包含一个 Repeated 属性。 class Resort(ndb.Model): name = ndb.StringProperty()
大家好,我正在尝试弄清楚如何针对以下情况构造我的查询 首先我定义了一个模型 class Variant(ndb.Expando): test = ndb.StringProperty() cl
大家好,我正在尝试弄清楚如何针对以下情况构造我的查询 首先我定义了一个模型 class Variant(ndb.Expando): test = ndb.StringProperty() cl
我是一名优秀的程序员,十分优秀!