[1.7.x] Fixed #22349 -- Added a note clarifying `RawQuerySet` has no `__len__`.
Thanks cdestigter for the report.
Backport of 2d425116e2
from master
This commit is contained in:
parent
d9eef1f4f7
commit
d3bf537324
1
AUTHORS
1
AUTHORS
|
@ -419,6 +419,7 @@ answer newbie questions, and generally made Django that much better:
|
||||||
Javier Mansilla <javimansilla@gmail.com>
|
Javier Mansilla <javimansilla@gmail.com>
|
||||||
masonsimon+django@gmail.com
|
masonsimon+django@gmail.com
|
||||||
Manuzhai
|
Manuzhai
|
||||||
|
Moayad Mardini <moayad.m@gmail.com>
|
||||||
Petr Marhoun <petr.marhoun@gmail.com>
|
Petr Marhoun <petr.marhoun@gmail.com>
|
||||||
Petar Marić <http://www.petarmaric.com/>
|
Petar Marić <http://www.petarmaric.com/>
|
||||||
Nuno Mariz <nmariz@gmail.com>
|
Nuno Mariz <nmariz@gmail.com>
|
||||||
|
|
|
@ -33,7 +33,8 @@ return model instances:
|
||||||
|
|
||||||
This method takes a raw SQL query, executes it, and returns a
|
This method takes a raw SQL query, executes it, and returns a
|
||||||
``django.db.models.query.RawQuerySet`` instance. This ``RawQuerySet`` instance
|
``django.db.models.query.RawQuerySet`` instance. This ``RawQuerySet`` instance
|
||||||
can be iterated over just like a normal QuerySet to provide object instances.
|
can be iterated over just like a normal
|
||||||
|
:class:`~django.db.models.query.QuerySet` to provide object instances.
|
||||||
|
|
||||||
This is best illustrated with an example. Suppose you have the following model::
|
This is best illustrated with an example. Suppose you have the following model::
|
||||||
|
|
||||||
|
@ -84,6 +85,17 @@ options that make it very powerful.
|
||||||
both rows will match. To prevent this, perform the correct typecasting
|
both rows will match. To prevent this, perform the correct typecasting
|
||||||
before using the value in a query.
|
before using the value in a query.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
While a ``RawQuerySet`` instance can be iterated over like a normal
|
||||||
|
:class:`~django.db.models.query.QuerySet`, ``RawQuerySet`` doesn't
|
||||||
|
implement all methods you can use with ``QuerySet``. For example,
|
||||||
|
``__bool__()`` and ``__len__()`` are not defined in ``RawQuerySet``, and
|
||||||
|
thus all ``RawQuerySet`` instances are considered ``True``. The reason
|
||||||
|
these methods are not implemented in ``RawQuerySet`` is that implementing
|
||||||
|
them without internal caching would be a performance drawback and adding
|
||||||
|
such caching would be backward incompatible.
|
||||||
|
|
||||||
Mapping query fields to model fields
|
Mapping query fields to model fields
|
||||||
------------------------------------
|
------------------------------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue