#31973: TypeError loading data in JSONField if DB has native JSON support
-------------------------------------+-------------------------------------
Reporter: Adam Alton | Owner: nobody
Type: Bug | Status: closed
Component: Database layer | Version: 3.1
(models, ORM) |
Severity: Normal | Resolution: invalid
Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Mariusz Felisiak):
Replying to [comment:19 giacomo]:
> I'm also experiencing this error on Django >= 3.1.1 when using
`jsonb_array_length` on a `JSONField` that contains a list:
>
> {{{
> class MyModel(models.Model):
> field = JSONField(default=list)
>
> >>> MyModel.objects.annotate(field_len=Func(F('field'),
function='jsonb_array_length'))
Do you really want to get `JSON` as a result of `JSONB_ARRAY_LENGTH()`? I
think you missed `output_field`, e.g.
{{{
MyModel.objects.annotate(field_len=Func(F('field'),
function='jsonb_array_length', output_field=IntegerField()))
}}}
works fine.
--
Ticket URL: <https://code.djangoproject.com/ticket/31973#comment:20>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/067.cbf602771a8d184a04b4e2997b5af102%40djangoproject.com.