summaryrefslogtreecommitdiff
path: root/django/db/models/fields/generated.py
diff options
context:
space:
mode:
authorNilesh Kumar Pahari <nileshpahari@protonmail.com>2025-12-18 16:21:50 +0530
committerJacob Walls <jacobtylerwalls@gmail.com>2025-12-22 09:41:41 -0500
commit6025eab3c509b4de922117e16866bbfe0ee99aa6 (patch)
treed5f542be6eb02a9b12ab7fb3db93dcf54aa411de /django/db/models/fields/generated.py
parentafaa527c437f95ab6f8860840d83480d4d15b099 (diff)
Fixed #36806 -- Added system check for null kwarg in GeneratedField.
The null argument has no effect on GeneratedField since the nullability of the column depends on the database and expression used.
Diffstat (limited to 'django/db/models/fields/generated.py')
-rw-r--r--django/db/models/fields/generated.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/django/db/models/fields/generated.py b/django/db/models/fields/generated.py
index f89269b5e6..f90bc560e2 100644
--- a/django/db/models/fields/generated.py
+++ b/django/db/models/fields/generated.py
@@ -30,6 +30,7 @@ class GeneratedField(Field):
self.expression = expression
self.output_field = output_field
self.db_persist = db_persist
+ self.has_null_arg = "null" in kwargs
super().__init__(**kwargs)
@cached_property
@@ -82,6 +83,7 @@ class GeneratedField(Field):
*super().check(**kwargs),
*self._check_supported(databases),
*self._check_persistence(databases),
+ *self._check_ignored_options(databases),
]
output_field_clone = self.output_field.clone()
output_field_clone.model = self.model
@@ -188,6 +190,20 @@ class GeneratedField(Field):
)
return errors
+ def _check_ignored_options(self, databases):
+ warnings = []
+
+ if self.has_null_arg:
+ warnings.append(
+ checks.Warning(
+ "null has no effect on GeneratedField.",
+ obj=self,
+ id="fields.W225",
+ )
+ )
+
+ return warnings
+
def deconstruct(self):
name, path, args, kwargs = super().deconstruct()
del kwargs["blank"]