django models中使用JSONField数据类型

By Heanny
2019-5-20
2345 read

在今天给项目添加功能的时候,使用了数据库的json类型,发现django的models中没有JSONField类型,只好百度,发现百度中的是很早的信息了(1.1之前的,落后就要挨打!!!)

只好爬梯子看看外面的世界,发现官网中有该标注:https://docs.djangoproject.com/en/2.2/ref/contrib/postgres/fields/#jsonfield

使用(使用的时候可能需要安装依赖 psycopg):

from django.contrib.postgres.fields import JSONField
from django.db import models
class Dog(models.Model):
    name = models.CharField(max_length=200)
    data = JSONField()

    def __str__(self):
        return self.name

举个栗子:

>>> Dog.objects.create(name='Rufus', data={
...     'breed': 'labrador',
...     'owner': {
...         'name': 'Bob',
...         'other_pets': [{
...             'name': 'Fishy',
...         }],
...     },
... })
>>> Dog.objects.create(name='Meg', data={'breed': 'collie', 'owner': None})
>>> Dog.objects.filter(data__breed='collie')
<QuerySet [<Dog: Meg>]>


强行关闭win10更新
解决Centos下libstdc++.so.6: version `GLIBCXX_ 及ImportError: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /usr/lib64/libstdc++.so.6)问题

Comments

aqin #1

我想知道JsonField 是如何分别根据他的键进行排序的

Heanny aqin

这个暂时没啥研究,就用过一次,做一下记录

Leave a Reply