向模型中添加一个JSONProperty以将dict保存到数据存储中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向模型中添加一个JSONProperty以将dict保存到数据存储中相关的知识,希望对你有一定的参考价值。

  1. from google.appengine.ext import db
  2. from google.appengine.api import datastore_types
  3. from django.utils import simplejson
  4. class JSONProperty(db.Property):
  5. def get_value_for_datastore(self, model_instance):
  6. value = super(JSONProperty, self).get_value_for_datastore(model_instance)
  7. return self._deflate(value)
  8. def validate(self, value):
  9. return self._inflate(value)
  10. def make_value_from_datastore(self, value):
  11. return self._inflate(value)
  12. def _inflate(self, value):
  13. if value is None:
  14. return {}
  15. if isinstance(value, unicode) or isinstance(value, str):
  16. return simplejson.loads(value)
  17. return value
  18. def _deflate(self, value):
  19. return simplejson.dumps(value)
  20. data_type = datastore_types.Text
  21.  
  22.  
  23. class Person(db.Model):
  24. address_book = JSONProperty()
  25. person = Person(address_book = {
  26. "alice": { "phone": "555-555-5555", "email": "[email protected]" } })
  27. person.address_book["bob"] = { "email": "[email protected]" }
  28. person.put()
  29. ...
  30. some_person = db.get(key)
  31. logging.info("Phone number for alice is " + some_person.address_book["alice"]["phone"])

以上是关于向模型中添加一个JSONProperty以将dict保存到数据存储中的主要内容,如果未能解决你的问题,请参考以下文章

JSON 对象模型不使用 JsonProperty 名称

list str dic 内置方法

iOS 7 在右侧添加了滑动以将视图控制器从堆栈中弹出。是不是可以通过向左滑动将其添加回来?

Java获取类或对象中的字段名称和JsonProperty注释的名称

来自模型的数据未插入 QTableView

在保存以将该模型与当前用户相关联之前,在 Python 中将当前用户的 id 传递给另一个模型