[4.1.x] Reverted "Fixed #30711 -- Doc'd django.contrib.postgres.fields.hstore.KeyTransform()."
This reverts commit7faf25d682
. The same can be achieved with F() so there is no need to expose an extra API. Backport ofcb06f5ef8c
from main
This commit is contained in:
parent
27ad94ab3b
commit
02876534ab
|
@ -321,22 +321,6 @@ transform do not change. For example::
|
||||||
valid for a given field. This can be done using the
|
valid for a given field. This can be done using the
|
||||||
:class:`~django.contrib.postgres.validators.KeysValidator`.
|
:class:`~django.contrib.postgres.validators.KeysValidator`.
|
||||||
|
|
||||||
KeyTransform() expression
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
.. class:: hstore.KeyTransform(key_name, *args, **kwargs)
|
|
||||||
|
|
||||||
Returns the value of the given ``key_name``. This allows you to annotate a key
|
|
||||||
value. For example::
|
|
||||||
|
|
||||||
>>> from django.contrib.postgres.fields.hstore import KeyTransform
|
|
||||||
>>> Dog.objects.create(name="Rufus", data={"breed": "labrador"})
|
|
||||||
>>> Dog.objects.create(name="Meg", data={"breed": "collie", "owner": "Bob"})
|
|
||||||
|
|
||||||
>>> rufus = Dog.objects.annotate(breed=KeyTransform("breed", "data"))[0]
|
|
||||||
>>> rufus.breed
|
|
||||||
'labrador'
|
|
||||||
|
|
||||||
Querying ``HStoreField``
|
Querying ``HStoreField``
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
|
@ -373,6 +357,13 @@ You can chain other lookups after key lookups::
|
||||||
>>> Dog.objects.filter(data__breed__contains='l')
|
>>> Dog.objects.filter(data__breed__contains='l')
|
||||||
<QuerySet [<Dog: Rufus>, <Dog: Meg>]>
|
<QuerySet [<Dog: Rufus>, <Dog: Meg>]>
|
||||||
|
|
||||||
|
or use ``F()`` expressions to annotate a key value. For example::
|
||||||
|
|
||||||
|
>>> from django.db.models import F
|
||||||
|
>>> rufus = Dog.objects.annotate(breed=F("data__breed"))[0]
|
||||||
|
>>> rufus.breed
|
||||||
|
'labrador'
|
||||||
|
|
||||||
If the key you wish to query by clashes with the name of another lookup, you
|
If the key you wish to query by clashes with the name of another lookup, you
|
||||||
need to use the :lookup:`hstorefield.contains` lookup instead.
|
need to use the :lookup:`hstorefield.contains` lookup instead.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue