У меня есть странный вопрос, где же PK который генерируется дает мне ошибку:ключ Джанго нарушает ограничение уникальности
django.db.utils.IntegrityError: duplicate key value violates unique constraint "Comment_pkey"
DETAIL: Key (id)=(uxlt72XrRu-fm260qHo9Zg) already exists.
Это моя модель:
class Comment(models.Model):
id = models.CharField(primary_key=True, max_length=28, unique=True,
default="make_id()", editable=False)
description = models.TextField(max_length=255)
Функция для генерации ID:
def make_id():
return base64.b64encode(uuid.uuid4().bytes).decode("utf-8")
Как я получаю ошибку:
c = Comment.objects.create(description="test") < ==== works
c2 = Comment.objects.create(description="test2") < === violates unique constraint
Так почему же моя модель не генерирует новый идентификатор каждый раз? То же самое происходит в тестах не только оболочки.
что относительно лямбда? будет ли это работать? lambda: make_doodah() – Prometheus
Миграции могут не работать, но зачем вам нужна лямбда в первую очередь, если вы можете просто передать функцию? – knbk
Вот соответствующая документация: https://docs.djangoproject.com/en/dev/ref/models/fields/#default –