我使用的是django postgres JSONfield,模型结构如下
from django.contrib.postgres.fields import JSONField
class JsonAnswer(models.Model):
name = models.CharField(max_length=255)
data = JSONField(default={})
Json字段中的数据如下所示
{
"owner":{
"name":"Bob",
"other_pets":[
我有一个带有ArrayField的模型,以JSONField为基础。当我尝试插入数据时,它给出了以下错误: ProgrammingError: column "data" is of type jsonb[] but expression is of type text[]
LINE 1: ...e_status_code", "is_success", "error") VALUES (1, ARRAY['"a"...
我试图在我的模型中包含JSONField:
from django.contrib.postgres.fields import JSONField
class Trigger(models.Model):
solutions = JSONField(blank=True, null=True)
然而,当我尝试迁移数据库时,它给出了以下错误:
django.db.utils.ProgrammingError: cannot cast type text[] to jsonb
LINE 1: ...ALTER COLUMN "solutions" TYPE jsonb U
目前,我已经熟悉了如何在django rest框架中使用JSONField,但是我无法找到任何直接的方法来更新存储的json中的密钥。筛选JSONField的方法有很多,取决于它的内部键,但似乎无法从已经存储的JSONField中更改、更新或删除密钥。但是,正如所解释的,postgres似乎可以对json键进行一些修改。
是否有能够在JSONFields上进行修改的函数。如果没有任何直接命令来执行此操作,那么实现JSONField修改的最佳方法是什么?
编辑:
举个例子,如果我有这样一个模型:
class Thing(models.Model):
name = models.CharF
如何跟踪警告?
models.py
from django.contrib.postgres.fields import JSONField
from django.db import models
from django_extensions.db.models import TimeStampedModel
class UnderwritingValidator(TimeStampedModel):
plan = models.PositiveIntegerField(null=True, blank=True, unique=True)
logic = JSONFie
我使用了Django 1.10提供的Postgres全文搜索,并获得了一个NotImplementedError。我使用的搜索查询是:
Application.objects.filter(applicant_data__search='test')
错误是:
NotImplementedError: Add 'django.contrib.postgres' to settings.INSTALLED_APPS to use the search operator.
我的INSTALLED_APPS设置包括django.contrib.postgres:
IN
我需要保存文件,但是文件的数量是不确定的,在一个请求中我可以添加一个文件,然后在另一个请求帖子中,我可以再添加一个文件……
出于这个原因,我认为创建一个JSONField类型字段可以帮助我解决这个问题,但我不知道这是否可能,如果可能,我不知道如何在Django中实现它。
以下是我当前如何将单个文件上传到Django Model的示例:
import uuid
import time
from users.models import User
from django.db import models
def upload_location(instance, filename):
我正在使用Django提供的JSONField,并将此类型的数据存储在该字段中: [
{
"number": 1,
"text": "This text is about dogs"
},
{
"number": 2,
"text": "Only cats in this text here"
},
{
Django 2.0,Django-Rest-Framework 3.8,Python3.6
我正在使用Postgres数据库,并试图将以下设置为JSONField的默认值:
from django.db import models
from django.contrib.postgres.fields import JSONField
class TrainerProfile(models.Model):
"""data required to pull up trainer profile"""
specific_work
我有一个django模型,它应该存储用户对问卷的回答。有许多类型的问卷,但其中一种可以像这样简单(尽管许多更复杂):
What is your name?
What is your age?
What is your height?
What is your age?
我想知道如何创建一个模型来存储表单中提交的数据。现在,我使用了一个简单的JSON字段:
from django.contrib.postgres.fields import JSONField
data = JSONField(default=dict)
然而,当问卷变得更长时,这就变得困难了。做这件事最好的方法是什么?如果JS
我有下一个模型: from django.contrib.postgres.fields import JSONField
from django.contrib.postgres.fields.jsonb import KeyTextTransform
from django.contrib.postgres.indexes import GinIndex
from django.contrib.postgres.search import SearchVectorField, SearchVector
from django.db import models
class Profil
我在姜戈有一个带JSONField的模型。如果我使用Django Rest UI通过浏览器发出POST,那么数据可以毫无问题地输入到模型中。但是,当我在应用程序中使用Python的requests.post时,除了JSONField数据之外的所有数据都存储在模型中。 这是我的模型 from django.db import models
from django.contrib.postgres.fields import JSONField
class Scans(models.Model):
Name = models.CharField(max_length=20)
Se
使用Django 1.9和Postgres 9.4。
我有一个名为json_field的jsonb字段。json_field可以包含密钥title,它可能类似于'the cow jumped over the moon'。
所以我想搜索title包含moon的行。
使用以下原始SQL,它可以正常工作
SELECT * FROM web_file where (json_field ->> 'title')::text LIKE '%moon%';
但我更喜欢使用Django ORM。
编辑:
我想尝试一下(正如@kloddant指出的
我有一个类似的模型:
# segment/models.py
from django.db import models
from django.contrib.postgres.fields import JSONField
class Segment(models.Model):
name = models.CharField(max_length=100)
# docs: https://docs.djangoproject.com/en/2.2/ref/contrib/postgres/fields/#jsonfield
data = JSONField(
我正在尝试创建一个多语言的业务目录。我应该在一个JSONField中聚合所有数据,还是应该将其拆分成多个模型,以及为什么。
models.py
from django.db import models
from django.contrib.postgres.fields import JSONField
class Business(models.Model):
name = models.CharField(max_length=500)
subsidiary = models.ForeignKey(Business, on_delete=models.SET_NULL,
从GitHub回购安装项目,并最终收到以下错误
File "/Users/TheKotik/closer/blog/models.py", line 5, in <module>
from rest_framework import serializers
File "/Users/TheKotik/closer/denv/lib/python3.5/site-packages/rest_framework/serializers.py", line 1534, in <module>
ModelSerializer
PostgreSQL 9.4.12
Django 1.10.7
使用这个最小类:
from django.contrib.postgres.fields import JSONField
class Foobar(models.Model):
extra_data = JSONField(blank=True, default="")
我运行manage.py shell_plus:
In [2]: a=Foobar.objects.create()
In [3]: a.extra_data={}
In [4]: a.save()
In [6]:
我的模特:
from django.db import models
from django.contrib.postgres.fields import JSONField
class MyModel(models.Model):
data = JSONField(blank=True, null=True)
我创建了一些对象,并使用一些JSON填充了"data“字段。
然后,我尝试为“数据”字段创建索引。
class MyModel(models.Model):
data = JSONField(blank=True, null=True, db_index=Tr
我有一个带有JSONField ( Postgres唯一字段)的模型:
models.py:
from django.db import models
from django.contrib.postgres.fields import JSONField
class Mod(models.Model):
data = JSONField(default={ 'name':'Model' })
所以我创建了两个模型- ./manage.py shell
>>> from m3d.models import Mod
>>&g
在启动模型实例时,我有一个关于如何动态设置模型属性的问题。
我使用的是一个带有本机PostgreSQL JSONField的简单模型:
from django.db import models
from django.contrib.postgres.fields import JSONField
class Booking(models.Model):
data = JSONField(blank=False, encoder=DjangoJSONEncoder)
当模型实例化时,是否有任何方法根据存储在“data”字段中的值来设置模型实例的属性?
我想要做到这一点:
from .
我正在使用Django 2.2和PostgreSQL 12。
这是我的模型:
from django.contrib.postgres.search import SearchVectorField, SearchVector
from django.contrib.postgres.fields import JSONField
class ProfileUser(models.Model):
name = JSONField()
search_vector = SearchVectorField(null=True)
class Meta:
i
THis是我为postgres编写的用于check约束的原始查询
ALTER TABLE rea_asplinkage ADD CONSTRAINT asp_sub_project_positive_integer
CHECK (
jsonb_typeof(linkage-> 'root' -> 'in_sub_project') is not distinct from 'number'
and (linkage->'root'->>