#36573: "fields.E010" should not warn when field defaults are expressions
-------------------------------------+-------------------------------------
               Reporter:  Clifford   |          Owner:  Clifford Gama
  Gama                               |
                   Type:             |         Status:  assigned
  Cleanup/optimization               |
              Component:  Core       |        Version:  dev
  (System checks)                    |
               Severity:  Normal     |       Keywords:
           Triage Stage:             |      Has patch:  0
  Unreviewed                         |
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  0
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 The
 
[https://github.com/django/django/blob/3e7aedfb2eb37d0c83ce3ce936f1b89eb5451dfa/django/db/models/fields/mixins.py#L40
 CheckFieldDefaultMixin._check_default()] system check (fields.E010)
 currently warns whenever a field’s default is not None, and not callable.
 This is meant to prevent accidental sharing of mutable Python objects such
 as `[]` or `{}` across all model instances, however this also guards
 against expressions.

 For example, it warns against using `data =
 models.JSONField(default=Value({"key": "value"}, JSONField()))` and has
 been warning for `Value(None, JSONField())`. This seems unnecessary,
 because (unless I’m missing something) expressions are not subject to the
 mutability/sharing problem that the check is meant to prevent.
-- 
Ticket URL: <https://code.djangoproject.com/ticket/36573>
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 visit 
https://groups.google.com/d/msgid/django-updates/01070198e6be8858-faec1e31-677f-4b96-ae3d-8861937c3c41-000000%40eu-central-1.amazonses.com.

Reply via email to