问题标签 [django-jsonfield]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - Searching for list of values in a Django JSONField
So I've got this model
with this JSONField
-
ref_det
stores values in this format
Each object of the model has its ref_det
as a dictionary of just those two values.
Now I have this list of user IDs - user_ids
- and I want to get those objects from the model where the user_id
key in its ref_det
field contains any of those user_id
in the user_ids
list.
So if I have user_ids = ['2231', '973','431']
, I should get those Details
objects whose ref_det
has its user_id
as any of the 3 values in the list.
I tried looking up through contains
, but I think that supports lookups of only a single value and not a list.
I think __values__contains
(https://docs.djangoproject.com/en/1.9/ref/contrib/postgres/fields/#hstorefield) is appropriate for this usecase, but then again, I don't have an HStoreField
.
Does anyone know how I can get through this?
Thanks!
json - JSONField 在 JSON 中引用像一对一这样的模型
愚蠢的提问时间!:)
我认为这是不可能的,但我需要问一下,以防我错了。是否可以在 a 的 JSON 中创建与普通 Django 模型的一对一关系JSONField
?
例子:
Django 模型(示例):
单独应用程序中的 Django 模型(示例):
JSON 本身将是一个包含多个层的字典列表,但有些需要保存对TheModel
要在模板中呈现的引用(与一对一关系的方式相同)。
JSON(示例):
看起来我必须遍历 JSON 并在视图中手动插入引用。
编辑
继@ruddra 的评论之后。TheModel
引用的内容没有一致性。如果有的话,我会建立正常的一对一关系。
请注意,我在问是否有可能不是我需要做的。我已经把TheModel
它需要去的地方的 id 放在了我只是好奇地看到它JSONField
可以一对一地做,就像 DjangoForiegnKey
在模板中做字段一样。
django - django - 不支持对 JSONField 的查找或不允许加入该字段
我的模型中有一个 Json 字段 -
我的数据库中有值,例如-
我正在尝试过滤总计 = 0 的对象,为此我尝试过-
Product.objects.filter(detailed_stock__total = 0)
但它会引发错误 -
Unsupported lookup 'total' for JSONField or join on the field not permitted.
根据文档,允许使用以下代码。
这是完整的追溯-
我在互联网上搜索但无法找到解决方案,请帮助。
python - 在 Django 中使用 JSONField 进行批量更新
我想使用 JSONField() 的 Case-When 语句执行批量更新。当我在每次迭代中使用 save() 在一个愚蠢的循环中执行此操作时,一切正常。但是上面的代码写给我:django.db.utils.ProgrammingError: can't adapt type 'dict'
说第二行。我也尝试了 json.loads(),但没有成功。我应该怎么做才能执行这个多次更新?
我正在使用 Python 3.6.3 和 Django 1.11.16
django - 序列化程序验证数据中的 Django JSON 字段为无
我有一个看起来像这样的 Django 模型:
我有相应的序列化程序,它非常基本:
我想做的是对序列化程序中的那个 JSON 字段进行一些验证。我尝试通过覆盖validate
andcreate
函数来做到这一点,但在这两种情况下,attrs.data
or的值validated_data.data
都是None
。
奇怪的是,如果我在pre-save
orpost-save
信号中创建相同的验证,则该instance.data
值不是None
并且实际上具有我在请求中传递的值。
我想知道我是否做错了什么,或者 DRF 是否不支持对序列化程序中的 JSON 字段进行验证,只是希望您在信号中进行验证。这似乎有点不对劲。
django - Django JSONField 未接收到已清理的数据
我有一个非常简单的模型,其中包含JSONField
:
我创建了一个自定义小部件,允许输入键值对:
dict
我将小部件返回的强制转换clean
为表单上字段函数中的字符串:
我检查了JsonWidget.value_from_datadict
( dict
) 和ThingForm.clean_text
( str
) 的输出是预期的类型。但是当对象去保存它抛出一个异常:
这是我第一次为 Django 1.11 构建自定义小部件,我在这里错过了什么明显的东西吗?
谢谢!
django - JSONField 的 InternalType 显示为 TextField
我是 DJANGO 的初学者,我正在做一个项目,其中一个模型包含 JSONField。在代码中,有时我只需要检测和处理 JSONField,所以我得到了字段的内部类型,如果结果是 JSON 字段,那么我处理它。
它在我的机器上运行良好,但是当我在服务器上上传相同的代码时,它不会执行,因为 JSONField 的内部类型作为 TextField 返回并且逻辑在那里失败。可能有什么问题,为什么 JSONField 被检测为 TextField?
服务器上使用的 postgres 版本是 9.6.1
json - django rest 框架 + mariaDB:自定义 JSONField
Django:v2.1.5 DRF:v3.9.1 mariaDB:v10.3
嗨,我是 DRF 新手,我一直在 json 领域苦苦挣扎。
DRF 不支持与 mariaDB 一起使用的官方 json 字段类型,即使有 mysql(django-mysql) 的 3rd-party 包但与 mariaDB 不兼容。
所以我搜索并开始实现自定义 jsonfield,它看起来像:
模型.py:
序列化程序.py:
视图.py:
请让我知道我在这里做错了什么或使用 3rd 方包而不是自定义 jsonfield 的方法
非常感谢,祝你们有美好的一天!
python - django 格式错误的数组文字:
我有一个小问题:
我有这个模型:
我想更新这个字段:
但我有这个错误:
回溯(最后一次调用):文件“/home/hy0/.conda/envs/ciclods_env/lib/python3.7/site-packages/django/db/backends/utils.py”,第 85 行,在 _execute return self .cursor.execute(sql, params) psycopg2.DataError: 格式错误的数组字面量:"{"rda": {"punti": 0, "rank": 1, "pos": "eq"}}"
我该如何解决?
django - Django 使用 Postgres 在 JSONField 中注释计数
使用 Django,我有一个 JSONField 类型的字段。我想对 json 中的嵌套键/值进行不同的计数。使用普通字段,您可以执行以下操作
这不适用于 JSONField。
示例模型
数据示例
试
例外
执行此操作的正确方法是什么?