1
0
mirror of https://github.com/django/django.git synced 2025-10-27 07:36:08 +00:00

[4.2.x] Fixed #34754 -- Fixed JSONField check constraints validation on NULL values.

The __isnull lookup of JSONField must special case
Value(None, JSONField()) left-hand-side in order to be coherent with
its convoluted null handling.

Since psycopg>=3 offers no way to pass a NULL::jsonb the issue is
resolved by optimizing IsNull(Value(None), True | False) to
True | False.

Regression in 5c23d9f0c3.

Thanks Alexandre Collet for the report.

Backport of 3434dbd39d from main
This commit is contained in:
Simon Charette
2023-08-02 20:47:49 -04:00
committed by Mariusz Felisiak
parent 951dcbb2e6
commit 3a1863319c
4 changed files with 35 additions and 1 deletions

View File

@@ -115,3 +115,10 @@ class AbstractModel(models.Model):
class ChildModel(AbstractModel):
pass
class JSONFieldModel(models.Model):
data = models.JSONField(null=True)
class Meta:
required_db_features = {"supports_json_field"}