Fixed #21333 -- Doc'd the & and | queryset operators.

This commit is contained in:
Colm O'Connor 2018-06-21 21:01:53 +01:00 committed by Tim Graham
parent 48b327aef1
commit c530428d36
1 changed files with 40 additions and 0 deletions

View File

@ -1750,6 +1750,46 @@ See the :doc:`/topics/db/sql` for more information.
filtering. As such, it should generally be called from the ``Manager`` or filtering. As such, it should generally be called from the ``Manager`` or
from a fresh ``QuerySet`` instance. from a fresh ``QuerySet`` instance.
Operators that return new ``QuerySet``\s
----------------------------------------
Combined querysets must use the same model.
AND (``&``)
~~~~~~~~~~~
Combines two ``QuerySet``\s using the SQL ``AND`` operator.
The following are equivalent::
Model.objects.filter(x=1) & Model.objects.filter(y=2)
Model.objects.filter(x=1, y=2)
from django.db.models import Q
Model.objects.filter(Q(x=1) & Q(y=2))
SQL equivalent:
.. code-block:: sql
SELECT ... WHERE x=1 AND y=2
OR (``|``)
~~~~~~~~~~
Combines two ``QuerySet``\s using the SQL ``OR`` operator.
The following are equivalent::
Model.objects.filter(x=1) | Model.objects.filter(y=2)
from django.db.models import Q
Model.objects.filter(Q(x=1) | Q(y=2))
SQL equivalent:
.. code-block:: sql
SELECT ... WHERE x=1 OR y=2
Methods that do not return ``QuerySet``\s Methods that do not return ``QuerySet``\s
----------------------------------------- -----------------------------------------