From 35ab2e018214479fa712d73f070198299ef670a1 Mon Sep 17 00:00:00 2001 From: Yash Date: Wed, 16 Oct 2024 14:38:31 +0530 Subject: [PATCH] Fixed #35731 -- Extended db_default docs. This added a missing db_default reference in docs/topics/db/models.txt, and added a reference to the DatabaseDefault object. --- docs/ref/models/fields.txt | 5 +++++ docs/topics/db/models.txt | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index febb45108d..b2da1b519c 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -426,6 +426,11 @@ precedence when creating instances in Python code. ``db_default`` will still be set at the database level and will be used when inserting rows outside of the ORM or when adding a new field in a migration. +If a field has a ``db_default`` without a ``default`` set and no value is +assigned to the field, a ``DatabaseDefault`` object is returned as the field +value on unsaved model instances. The actual value for the field is determined +by the database when the model instance is saved. + ``db_index`` ------------ diff --git a/docs/topics/db/models.txt b/docs/topics/db/models.txt index e7bc1681fb..f7f575eb3f 100644 --- a/docs/topics/db/models.txt +++ b/docs/topics/db/models.txt @@ -224,6 +224,15 @@ ones: object. If callable it will be called every time a new object is created. +:attr:`~Field.db_default` + The database-computed default value for the field. This can be a literal + value or a database function. + + If both ``db_default`` and :attr:`Field.default` are set, ``default`` will + take precedence when creating instances in Python code. ``db_default`` will + still be set at the database level and will be used when inserting rows + outside of the ORM or when adding a new field in a migration. + :attr:`~Field.help_text` Extra "help" text to be displayed with the form widget. It's useful for documentation even if your field isn't used on a form.