我想在运行postgresql的django应用程序中实现JsonField。我还可以在该Json字段上创建索引,以便可以让Mongo具有像功能一样的功能?我是否必须使用sqlalchemy来实现这个功能,或者django内置的ORM是否适合这个目的?如何在django中将postgresql作为后端来实现JsonField?
谢谢。
我想在运行postgresql的django应用程序中实现JsonField。我还可以在该Json字段上创建索引,以便可以让Mongo具有像功能一样的功能?我是否必须使用sqlalchemy来实现这个功能,或者django内置的ORM是否适合这个目的?如何在django中将postgresql作为后端来实现JsonField?
谢谢。
您可以轻松地安装django-jsonfield
pip install jsonfield
,并用它在你的领域
class MyModel(models.Model):
my_json_field = JSONField()
这只是一个TextField
序列化JSON对象为Python字典,以便不,你不能有它的索引也不能对你的json字段进行查询。
如果您使用的是Postgres(和不关心与其它数据库引擎兼容),你应该考虑Django的Postgres的领域
https://docs.djangoproject.com/en/1.9/ref/contrib/postgres/fields/
这应该比普通jsonfield更好的性能。
如果DB兼容问题,和/或你希望你的领域是可读/通过Django管理编辑,你可能要考虑KeyValueField代替https://github.com/rewardz/django_model_helpers
的数据存储在DB这样
Name = abc
Age = 123
但回到你喜欢这个
{"Name": "abc", "Age": "123"}
所以,如果你让db_index = True
你可以做field__contains="Age = 123"
但尽管使用db_index,但它不是傻瓜证明,因为年龄= 1234也将返回该查询加上索引文本字段通常不建议
您可以使用谷歌https://www.djangopackages.com/grids/g/json-场/ – madzohan 2014-11-08 10:29:13