2014-11-08 57 views
0

我想在运行postgresql的django应用程序中实现JsonField。我还可以在该Json字段上创建索引,以便可以让Mongo具有像功能一样的功能?我是否必须使用sqlalchemy来实现这个功能,或者django内置的ORM是否适合这个目的?如何在django中将postgresql作为后端来实现JsonField?

谢谢。

+0

您可以使用谷歌https://www.djangopackages.com/grids/g/json-场/ – madzohan 2014-11-08 10:29:13

回答

0

您可以轻松地安装django-jsonfield

pip install jsonfield 

,并用它在你的领域

class MyModel(models.Model): 
    my_json_field = JSONField() 

这只是一个TextField序列化JSON对象为Python字典,以便不,你不能有它的索引也不能对你的json字段进行查询。

0

如果您使用的是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也将返回该查询加上索引文本字段通常不建议

相关问题