diff options
| author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2026-06-05 12:10:10 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-06-05 12:10:10 +0200 |
| commit | a2348c85fc6c20087935c74cd99340dd4ef2dcdc (patch) | |
| tree | cac239b31e1866a2d0c4df5285857ada28a1f4e5 /django/db/models/base.py | |
| parent | 8c2d3dca633629effad17ccc98730234f740d03f (diff) | |
Fixed #37139 -- Fixed inlines crash on parent models with db_default on primary key.
Diffstat (limited to 'django/db/models/base.py')
| -rw-r--r-- | django/db/models/base.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/django/db/models/base.py b/django/db/models/base.py index d53da600d7..7ac02f8a50 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -709,9 +709,17 @@ class Model(AltersData, metaclass=ModelBase): def _is_pk_set(self, meta=None): pk_val = self._get_pk_val(meta) + + def _is_set(value): + return ( + value is None + # Empty value when db_default is used. + or isinstance(value, DatabaseDefault) + ) + return not ( - pk_val is None - or (isinstance(pk_val, tuple) and any(f is None for f in pk_val)) + _is_set(pk_val) + or (isinstance(pk_val, tuple) and any(_is_set(f) for f in pk_val)) ) def get_deferred_fields(self): |
