App Engine数据存储区中的可选参考字段

伊万乔

我有一个模特

class MyModel(ndb.Model):
    foo = ndb.StringProperty()

class OtherModel(ndb.Model):
    baz = ndb.StringProperty()
    ref = ndb.KeyProperty(kind=MyModel)

我建立了一个视图,可以在其中创建和修改这些模型实体,我希望refof字段OtherModel是可选的,但是当我尝试提交和清空ref字段或删除它的旧值时,出现ndb.KeyProperty验证错误

我的更新逻辑如下所示:

for property in editableProperties:
    # Lets suppose this parses values from a form in a request to the needed type
    new_value = deserialize(property._kind, self.request.get(property._name))
    setattr(item, property._name, new_value)

我在哪里尝试将new_value设置为None和空字符串。我怎样才能做到这一点?

丹·科尼莱斯库(Dan Cornilescu)

如果您没有Model用于设置ref属性实体键,则不要设置它-即不要将该属性包含在您要传递回数据存储区以进行写入的实体值中。如果这样做,您传递的属性值将受到完整性检查,并且将失败。

换句话说:根本不做

`setattr(item, property._name, new_value)`

对于ref何时new_value不是关键。而是按照以下方式进行操作:

if hasattr(item, property._name):
   delattr(item, property._name)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Google App Engine数据存储区关键字段中的“ name =“代表什么?

来自分类Dev

Google App Engine中的数据存储区与Cloud SQL

来自分类Dev

Google App Engine数据存储区中的多线程

来自分类Dev

Google App Engine数据存储区查询返回陈旧数据

来自分类Dev

如何使App Engine从数据存储区而不是内存缓存中检索属性值?

来自分类Dev

如何使用Java从Google App Engine数据存储区中的实体提取属性

来自分类Dev

在Google App Engine中,如何在更新SDK之后使开发数据存储区保持可用状态?

来自分类Dev

如何在Google App Engine数据存储区中添加动态属性

来自分类Dev

如何从Google App Engine(Java)数据存储区中的子实体查询父实体?

来自分类Dev

在Google App Engine数据存储区中搜索以前缀开头的字符串

来自分类Dev

覆盖Google App Engine- Java中的数据存储区实体

来自分类Dev

列出Google App Engine数据存储区中的所有实体时出现AttributeError

来自分类Dev

Google App Engine数据存储区中的索引和索引条目限制

来自分类Dev

如何从App-Engine数据存储区实体类型中获取最新的25个条目

来自分类Dev

计算在Google App Engine数据存储区中占得分和日期的索引

来自分类Dev

Google App Engine(Python)-数据存储区正在复制实体

来自分类Dev

Google App Engine数据存储区的大表是如何设计的?

来自分类Dev

Google App Engine数据存储区-密钥与标识符

来自分类Dev

在App Engine(python)之外使用数据存储区?

来自分类Dev

Google App Engine NDB数据存储区的简单说明

来自分类Dev

Android Studio App Engine数据存储区集成-NoSuchMethodError

来自分类Dev

使用Java为App Engine数据存储区设置游标

来自分类Dev

查询所有实体的Google App Engine数据存储区

来自分类Dev

App Engine数据存储区的复合键性能

来自分类Dev

检测App Engine数据存储区模型属性更改

来自分类Dev

在Google App Engine上运行数据存储区查询

来自分类Dev

Google App Engine数据存储区按属性删除实体

来自分类Dev

Google App Engine数据存储区获得财产的价值

来自分类Dev

Google App Engine数据存储区如何获取Key <?>的实体

Related 相关文章

  1. 1

    Google App Engine数据存储区关键字段中的“ name =“代表什么?

  2. 2

    Google App Engine中的数据存储区与Cloud SQL

  3. 3

    Google App Engine数据存储区中的多线程

  4. 4

    Google App Engine数据存储区查询返回陈旧数据

  5. 5

    如何使App Engine从数据存储区而不是内存缓存中检索属性值?

  6. 6

    如何使用Java从Google App Engine数据存储区中的实体提取属性

  7. 7

    在Google App Engine中,如何在更新SDK之后使开发数据存储区保持可用状态?

  8. 8

    如何在Google App Engine数据存储区中添加动态属性

  9. 9

    如何从Google App Engine(Java)数据存储区中的子实体查询父实体?

  10. 10

    在Google App Engine数据存储区中搜索以前缀开头的字符串

  11. 11

    覆盖Google App Engine- Java中的数据存储区实体

  12. 12

    列出Google App Engine数据存储区中的所有实体时出现AttributeError

  13. 13

    Google App Engine数据存储区中的索引和索引条目限制

  14. 14

    如何从App-Engine数据存储区实体类型中获取最新的25个条目

  15. 15

    计算在Google App Engine数据存储区中占得分和日期的索引

  16. 16

    Google App Engine(Python)-数据存储区正在复制实体

  17. 17

    Google App Engine数据存储区的大表是如何设计的?

  18. 18

    Google App Engine数据存储区-密钥与标识符

  19. 19

    在App Engine(python)之外使用数据存储区?

  20. 20

    Google App Engine NDB数据存储区的简单说明

  21. 21

    Android Studio App Engine数据存储区集成-NoSuchMethodError

  22. 22

    使用Java为App Engine数据存储区设置游标

  23. 23

    查询所有实体的Google App Engine数据存储区

  24. 24

    App Engine数据存储区的复合键性能

  25. 25

    检测App Engine数据存储区模型属性更改

  26. 26

    在Google App Engine上运行数据存储区查询

  27. 27

    Google App Engine数据存储区按属性删除实体

  28. 28

    Google App Engine数据存储区获得财产的价值

  29. 29

    Google App Engine数据存储区如何获取Key <?>的实体

热门标签

归档