Функции базы данных, специфичные для PostgreSQL¶
Все эти функции доступны из модуля django.contrib.postgres.functions
.
RandomUUID
¶
-
class
RandomUUID
[исходный код]¶
Возвращает UUID версии 4.
На PostgreSQL < 13 необходимо установить pgcrypto extension. Для его установки можно использовать операцию миграции CryptoExtension
.
Пример использования:
>>> from django.contrib.postgres.functions import RandomUUID
>>> Article.objects.update(uuid=RandomUUID())
TransactionNow
¶
-
class
TransactionNow
[исходный код]¶
Возвращает дату и время на сервере базы данных, когда началась текущая транзакция. Если вы не находитесь в транзакции, то возвращается дата и время текущего оператора. Это дополнение к django.db.models.functions.Now
, которое возвращает дату и время текущего оператора.
Обратите внимание, что только крайний вызов atomic()
устанавливает транзакцию и, таким образом, устанавливает время возврата TransactionNow()
; вложенные вызовы создают точки сохранения, которые не влияют на время транзакции.
Пример использования:
>>> from django.contrib.postgres.functions import TransactionNow
>>> Article.objects.filter(published__lte=TransactionNow())
<QuerySet [<Article: How to Django>]>