mirror of
https://github.com/django/django.git
synced 2025-11-07 07:15:35 +00:00
Fixed #36329 -- Removed non-code custom link text when cross-referencing Python objects.
Thanks Bruno Alla, Sarah Boyce, and Jacob Walls for reviews. Co-authored-by: Sarah Boyce <42296566+sarahboyce@users.noreply.github.com>
This commit is contained in:
@@ -968,8 +968,8 @@ See :ref:`ref-models-update-fields` for more details.
|
||||
|
||||
Note that the :meth:`~Model.delete` method for an object is not
|
||||
necessarily called when :ref:`deleting objects in bulk using a
|
||||
QuerySet <topics-db-queries-delete>` or as a result of a :attr:`cascading
|
||||
delete <django.db.models.ForeignKey.on_delete>`. To ensure customized
|
||||
QuerySet <topics-db-queries-delete>` or as a result of a cascading delete
|
||||
(see :attr:`~django.db.models.ForeignKey.on_delete`). To ensure customized
|
||||
delete logic gets executed, you can use
|
||||
:data:`~django.db.models.signals.pre_delete` and/or
|
||||
:data:`~django.db.models.signals.post_delete` signals.
|
||||
|
||||
@@ -133,8 +133,8 @@ For instance:
|
||||
* At the most basic level, use :ref:`filter and exclude <queryset-api>` to do
|
||||
filtering in the database.
|
||||
|
||||
* Use :class:`F expressions <django.db.models.F>` to filter
|
||||
based on other fields within the same model.
|
||||
* Use :ref:`f-expressions` to filter based on other fields within the same
|
||||
model.
|
||||
|
||||
* Use :doc:`annotate to do aggregation in the database
|
||||
</topics/db/aggregation>`.
|
||||
@@ -396,9 +396,8 @@ number of SQL queries. For example::
|
||||
Entry.objects.create(headline="This is a test")
|
||||
Entry.objects.create(headline="This is only a test")
|
||||
|
||||
Note that there are a number of :meth:`caveats to this method
|
||||
<django.db.models.query.QuerySet.bulk_create>`, so make sure it's appropriate
|
||||
for your use case.
|
||||
Note that :meth:`~django.db.models.query.QuerySet.bulk_create` has several
|
||||
caveats, so ensure it's appropriate for your use case.
|
||||
|
||||
Update in bulk
|
||||
--------------
|
||||
@@ -427,9 +426,8 @@ The following example::
|
||||
entries[1].headline = "This is no longer a test"
|
||||
entries[1].save()
|
||||
|
||||
Note that there are a number of :meth:`caveats to this method
|
||||
<django.db.models.query.QuerySet.bulk_update>`, so make sure it's appropriate
|
||||
for your use case.
|
||||
Note that :meth:`~django.db.models.query.QuerySet.bulk_update` has several
|
||||
caveats, so ensure it's appropriate for your use case.
|
||||
|
||||
Insert in bulk
|
||||
--------------
|
||||
@@ -491,12 +489,12 @@ objects to reduce the number of SQL queries. For example::
|
||||
|
||||
...where ``Band`` and ``Artist`` are models with a many-to-many relationship.
|
||||
|
||||
When removing different pairs of objects from :class:`ManyToManyFields
|
||||
<django.db.models.ManyToManyField>`, use
|
||||
:meth:`~django.db.models.query.QuerySet.delete` on a
|
||||
:class:`~django.db.models.Q` expression with multiple
|
||||
:attr:`~django.db.models.ManyToManyField.through` model instances to reduce
|
||||
the number of SQL queries. For example::
|
||||
When removing multiple many-to-many relationships involving several instances
|
||||
of the related models, use the :meth:`~django.db.models.query.QuerySet.delete`
|
||||
method on a filtered queryset of the field's
|
||||
:attr:`~django.db.models.ManyToManyField.through` model. By combining multiple
|
||||
conditions with :ref:`q-objects`, you can delete several relationships in a
|
||||
single query. For example::
|
||||
|
||||
from django.db.models import Q
|
||||
|
||||
|
||||
@@ -541,9 +541,10 @@ is ``'Beatles Blog'``:
|
||||
|
||||
This spanning can be as deep as you'd like.
|
||||
|
||||
It works backwards, too. While it :attr:`can be customized
|
||||
<.ForeignKey.related_query_name>`, by default you refer to a "reverse"
|
||||
relationship in a lookup using the lowercase name of the model.
|
||||
It works backwards, too. While it can be customized by setting
|
||||
:class:`~django.db.models.ForeignKey.related_query_name`, by default you
|
||||
refer to a "reverse" relationship in a lookup using the lowercase name of the
|
||||
model.
|
||||
|
||||
This example retrieves all ``Blog`` objects which have at least one ``Entry``
|
||||
whose ``headline`` contains ``'Lennon'``:
|
||||
@@ -692,10 +693,10 @@ In the examples given so far, we have constructed filters that compare
|
||||
the value of a model field with a constant. But what if you want to compare
|
||||
the value of a model field with another field on the same model?
|
||||
|
||||
Django provides :class:`F expressions <django.db.models.F>` to allow such
|
||||
comparisons. Instances of ``F()`` act as a reference to a model field within a
|
||||
query. These references can then be used in query filters to compare the values
|
||||
of two different fields on the same model instance.
|
||||
Django provides :ref:`f-expressions` to allow such comparisons. Instances of
|
||||
``F()`` act as a reference to a model field within a query. These references
|
||||
can then be used in query filters to compare the values of two different fields
|
||||
on the same model instance.
|
||||
|
||||
For example, to find a list of all blog entries that have had more comments
|
||||
than pingbacks, we construct an ``F()`` object to reference the pingback count,
|
||||
@@ -1370,12 +1371,11 @@ Complex lookups with ``Q`` objects
|
||||
|
||||
Keyword argument queries -- in :meth:`~django.db.models.query.QuerySet.filter`,
|
||||
etc. -- are "AND"ed together. If you need to execute more complex queries (for
|
||||
example, queries with ``OR`` statements), you can use
|
||||
:class:`Q objects <django.db.models.Q>`.
|
||||
example, queries with ``OR`` statements), you can use :ref:`q-objects`.
|
||||
|
||||
A :class:`Q object <django.db.models.Q>` (``django.db.models.Q``) is an object
|
||||
used to encapsulate a collection of keyword arguments. These keyword arguments
|
||||
are specified as in "Field lookups" above.
|
||||
A :ref:`Q object <q-objects>` (``django.db.models.Q``) is an object used to
|
||||
encapsulate a collection of keyword arguments. These keyword arguments are
|
||||
specified as in "Field lookups" above.
|
||||
|
||||
For example, this ``Q`` object encapsulates a single ``LIKE`` query::
|
||||
|
||||
@@ -1659,10 +1659,10 @@ them and call :meth:`~django.db.models.Model.save`::
|
||||
for item in my_queryset:
|
||||
item.save()
|
||||
|
||||
Calls to update can also use :class:`F expressions <django.db.models.F>` to
|
||||
update one field based on the value of another field in the model. This is
|
||||
especially useful for incrementing counters based upon their current value. For
|
||||
example, to increment the pingback count for every entry in the blog:
|
||||
Calls to update can also use :ref:`f-expressions` to update one field based on
|
||||
the value of another field in the model. This is especially useful for
|
||||
incrementing counters based upon their current value. For example, to increment
|
||||
the pingback count for every entry in the blog:
|
||||
|
||||
.. code-block:: pycon
|
||||
|
||||
|
||||
Reference in New Issue
Block a user