Вызываемое значение по умолчанию для уникального поля не будет генерировать уникальные значения при миграции
Использование Django/DRF для создания CRUD api
Я пытаюсь использовать RandomUUID для создания UUID из Postgres:
from django.db import models
from django.contrib.postgres.functions import RandomUUID
class Year(models.Model):
year_id = models.UUIDField(
primary_key=True, default=RandomUUID, editable=False)
Когда я запускаю python manage.py makemigrations
Выдает такую ошибку:
Callable default on unique field year.year_id will not generate unique values upon migrating
Что я делаю не так?
<
- Если вы используете PostgreSQL < 13, убедитесь, что у вас правильно установлено расширение pgcrypto. Согласно docs:
На PostgreSQL < 13 должно быть установлено расширение pgcrypto. Для его установки можно использовать операцию миграции CryptoExtension.
- В качестве альтернативы вы можете использовать uuid4 из Python. В файле models.py импортируйте uuid4 .
from uuid import uuid4
Тогда в ваших моделях:
year_id = models.UUIDField(primary_key=True, default=uuid4(), editable=False)