Если для поля модели по умолчанию установлено значение shortuuid.uuid (), уникальные значения не генерируются. - PullRequest
0 голосов
/ 15 июня 2019

У меня есть модель CustomUser, для которой я хочу создать уникальный shortuuid для каждой вставки.Не уверен, что я делаю это правильно, потому что я сталкиваюсь с неуникальными uuids с последовательными вставками.Или я должен переопределить метод create и сгенерировать оттуда shortuuid?

from django_extensions.db.fields import ShortUUIDField
import shortuuid

class CustomUser(AbstractUser):
    uuid = ShortUUIDField(unique=True, blank=False, editable=False, default=shortuuid.uuid())

1 Ответ

0 голосов
/ 15 июня 2019

При использовании по умолчанию вам всегда нужно передавать вызываемый , а не результат.

uuid = ShortUUIDField(unique=True, editable=False, default=shortuuid.uuid)

, т. Е. Без скобок.

blank=False по умолчаниюВам не нужно устанавливать это.Обратите внимание, что это, вероятно, должен быть первичный ключ: вы должны установить primary_key=True, в этом случае вам не нужно устанавливать unique или editable.

...