#35167: JSONFIeld get_db_prep_value being called with `Cast` types
---------------------------------+------------------------------------
     Reporter:  Samantha Hughes  |                    Owner:  (none)
         Type:  Bug              |                   Status:  new
    Component:  Error reporting  |                  Version:  4.2
     Severity:  Normal           |               Resolution:
     Keywords:  JSONField        |             Triage Stage:  Accepted
    Has patch:  0                |      Needs documentation:  0
  Needs tests:  0                |  Patch needs improvement:  0
Easy pickings:  0                |                    UI/UX:  0
---------------------------------+------------------------------------
Changes (by Simon Charette):

 * type:  Uncategorized => Bug
 * stage:  Unreviewed => Accepted

Comment:

 This highly likely relates to #34539 which was about making sure
 `get_db_prep_value` **always** calls `get_prep_value` as it use to be case
 in 4.1.

 Given the default implementation of `get_db_prep_save` doesn't delegate to
 `get_db_prep_value`
 
[https://github.com/django/django/blob/9cefdfc43f0bae696b56fa5a0bf22346f85affff/django/db/models/fields/__init__.py#L1012-L1013
 when provided a compilable expression] I believe we should also make sure
 `JSONField.get_db_prep_save` does something equivalent.

 The challenge here is that `Value(output_field=JSONField())`, which
 represents wrapped literal JSON values which could also be JSON strings,
 must be able to make their way to `connection.ops.adapt_json_value(value,
 self.encoder)`. At least they needed during the deprecation period maybe
 it's no longer the case since `Value(value).as_sql` will do the right
 thing by itself.
-- 
Ticket URL: <https://code.djangoproject.com/ticket/35167#comment:1>
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/0107018d7c718193-e0246539-c3aa-486e-bb88-1038c4e239ce-000000%40eu-central-1.amazonses.com.

Reply via email to