问题标签 [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.

0 投票
1 回答
1660 浏览

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!

0 投票
0 回答
161 浏览

json - JSONField 在 JSON 中引用像一对一这样的模型

愚蠢的提问时间!:)

我认为这是不可能的,但我需要问一下,以防我错了。是否可以在 a 的 JSON 中创建与普通 Django 模型的一对一关系JSONField

例子:

Django 模型(示例):

单独应用程序中的 Django 模型(示例):

JSON 本身将是一个包含多个层的字典列表,但有些需要保存对TheModel要在模板中呈现的引用(与一对一关系的方式相同)。

JSON(示例):

看起来我必须遍历 JSON 并在视图中手动插入引用。

编辑

继@ruddra 的评论之后。TheModel引用的内容没有一致性。如果有的话,我会建立正常的一对一关系。

请注意,我在问是否有可能不是我需要做的。我已经把TheModel它需要去的地方的 id 放在了我只是好奇地看到它JSONField可以一对一地做,就像 DjangoForiegnKey在模板中做字段一样。

0 投票
2 回答
5340 浏览

django - django - 不支持对 JSONField 的查找或不允许加入该字段

我的模型中有一个 Json 字段 -

我的数据库中有值,例如-

我正在尝试过滤总计 = 0 的对象,为此我尝试过-

Product.objects.filter(detailed_stock__total = 0) 但它会引发错误 -

Unsupported lookup 'total' for JSONField or join on the field not permitted.

根据文档,允许使用以下代码。

这是完整的追溯-

我在互联网上搜索但无法找到解决方案,请帮助。

0 投票
2 回答
2638 浏览

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

0 投票
1 回答
948 浏览

django - 序列化程序验证数据中的 Django JSON 字段为无

我有一个看起来像这样的 Django 模型:

我有相应的序列化程序,它非常基本:

我想做的是对序列化程序中的那个 JSON 字段进行一些验证。我尝试通过覆盖validateandcreate函数来做到这一点,但在这两种情况下,attrs.dataor的值validated_data.data都是None

奇怪的是,如果我在pre-saveorpost-save信号中创建相同的验证,则该instance.data值不是None并且实际上具有我在请求中传递的值。

我想知道我是否做错了什么,或者 DRF 是否不支持对序列化程序中的 JSON 字段进行验证,只是希望您在信号中进行验证。这似乎有点不对劲。

0 投票
1 回答
666 浏览

django - Django JSONField 未接收到已清理的数据

我有一个非常简单的模型,其中包含JSONField

我创建了一个自定义小部件,允许输入键值对:

dict我将小部件返回的强制转换clean为表单上字段函数中的字符串:

我检查了JsonWidget.value_from_datadict( dict) 和ThingForm.clean_text( str) 的输出是预期的类型。但是当对象去保存它抛出一个异常:

这是我第一次为 Django 1.11 构建自定义小部件,我在这里错过了什么明显的东西吗?

谢谢!

0 投票
0 回答
66 浏览

django - JSONField 的 InternalType 显示为 TextField

我是 DJANGO 的初学者,我正在做一个项目,其中一个模型包含 JSONField。在代码中,有时我只需要检测和处理 JSONField,所以我得到了字段的内部类型,如果结果是 JSON 字段,那么我处理它。

它在我的机器上运行良好,但是当我在服务器上上传相同的代码时,它不会执行,因为 JSONField 的内部类型作为 TextField 返回并且逻辑在那里失败。可能有什么问题,为什么 JSONField 被检测为 TextField?

服务器上使用的 postgres 版本是 9.6.1

0 投票
1 回答
772 浏览

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 的方法

非常感谢,祝你们有美好的一天!

0 投票
3 回答
2049 浏览

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"}}"

我该如何解决?

0 投票
1 回答
3040 浏览

django - Django 使用 Postgres 在 JSONField 中注释计数

使用 Django,我有一个 JSONField 类型的字段。我想对 json 中的嵌套键/值进行不同的计数。使用普通字段,您可以执行以下操作

这不适用于 JSONField。

示例模型

数据示例

例外

执行此操作的正确方法是什么?