summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Walls <jacobtylerwalls@gmail.com>2025-01-14 16:43:49 +0100
committerSarah Boyce <42296566+sarahboyce@users.noreply.github.com>2025-01-15 13:44:23 +0100
commitf054045973ea767ee4e3d60723de4a2f13bf0c49 (patch)
treed9f2769bb7aef7ad9a2bf339eaf926bc39b7600d
parentb721f127603516c75ebda6912046ff5f0694e150 (diff)
Refs #36070 -- Referred to pk as an attribute when a composite primary key is defined.
This is to avoid confusion that a field is often associated with having a single associated database column.
-rw-r--r--docs/ref/models/fields.txt4
-rw-r--r--docs/ref/models/instances.txt11
-rw-r--r--docs/releases/5.2.txt4
-rw-r--r--docs/topics/composite-primary-key.txt8
4 files changed, 16 insertions, 11 deletions
diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt
index 4cd1d05b3c..d31a541b73 100644
--- a/docs/ref/models/fields.txt
+++ b/docs/ref/models/fields.txt
@@ -722,8 +722,8 @@ isn't defined.
A virtual field used for defining a composite primary key.
-This field must be defined as the model's ``pk`` field. If present, Django will
-create the underlying model table with a composite primary key.
+This field must be defined as the model's ``pk`` attribute. If present, Django
+will create the underlying model table with a composite primary key.
The ``*field_names`` argument is a list of positional field names that compose
the primary key.
diff --git a/docs/ref/models/instances.txt b/docs/ref/models/instances.txt
index c2feca1181..7482b98a66 100644
--- a/docs/ref/models/instances.txt
+++ b/docs/ref/models/instances.txt
@@ -468,9 +468,14 @@ The ``pk`` property
Regardless of whether you define a primary key field yourself, or let Django
supply one for you, each model will have a property called ``pk``. It behaves
like a normal attribute on the model, but is actually an alias for whichever
-attribute is the primary key field for the model. You can read and set this
-value, just as you would for any other attribute, and it will update the
-correct field in the model.
+field or fields compose the primary key for the model. You can read and set
+this value, just as you would for any other attribute, and it will update the
+correct fields in the model.
+
+.. versionchanged:: 5.2
+
+ Support for the primary key to be composed of multiple fields was added via
+ ``CompositePrimaryKey``.
Explicitly specifying auto-primary-key values
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/docs/releases/5.2.txt b/docs/releases/5.2.txt
index 716f217aee..a65306d0a1 100644
--- a/docs/releases/5.2.txt
+++ b/docs/releases/5.2.txt
@@ -57,8 +57,8 @@ Composite Primary Keys
The new :class:`django.db.models.CompositePrimaryKey` allows tables to be
created with a primary key consisting of multiple fields.
-To use a composite primary key, when creating a model set the ``pk`` field to
-be a ``CompositePrimaryKey``::
+To use a composite primary key, when defining a model set the ``pk`` attribute
+to be a ``CompositePrimaryKey``::
from django.db import models
diff --git a/docs/topics/composite-primary-key.txt b/docs/topics/composite-primary-key.txt
index b43df68dfc..883c1b3e6f 100644
--- a/docs/topics/composite-primary-key.txt
+++ b/docs/topics/composite-primary-key.txt
@@ -11,8 +11,8 @@ In most cases, a single primary key should suffice. In database design,
however, defining a primary key consisting of multiple fields is sometimes
necessary.
-To use a composite primary key, when creating a model set the ``pk`` field to
-be a :class:`.CompositePrimaryKey`::
+To use a composite primary key, when defining a model set the ``pk`` attribute
+to be a :class:`.CompositePrimaryKey`::
class Product(models.Model):
name = models.CharField(max_length=100)
@@ -41,8 +41,8 @@ A composite primary key is represented by a ``tuple``:
>>> item.pk
(1, "A755H")
-You can assign a ``tuple`` to a composite primary key. This sets the associated
-field values.
+You can assign a ``tuple`` to the :attr:`~django.db.models.Model.pk` attribute.
+This sets the associated field values:
.. code-block:: pycon