Специальные функции базы данных PostgreSQL

Все эти функции доступны из django.contrib.postgres.functionsмодуля.

RandomUUID

класс RandomUUID

Возвращает UUID версии 4.

В PostgreSQL <13 должно быть установлено расширение pgcrypto . Вы можете использовать CryptoExtensionоперацию миграции, чтобы установить его.

Пример использования:

>>> from django.contrib.postgres.functions import RandomUUID
>>> Article.objects.update(uuid=RandomUUID())

TransactionNow

класс 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>]>

Copyright ©2021 All rights reserved