Подтвердить что ты не робот

Django: get_or_create Повышает дублируемую запись вместе with_unique

пример модели

class Example(Stat):
    numeric = models.IntegerField(...) 
    date = models.DateField( auto_now_add=True,...) #auto_now_add=True was the problem

    class Meta:
       unique_together = ('numeric','date')

)

Если 72 и '2011-08-07' уже сохранены

Example.object.get_or_create(numeric=72,date='2011-08-07')

вызывает

django.db.utils.IntegrityError: (1062, "Duplicate entry '72-2011-08-07'

возникает вопрос, почему get_or_create вызывает IntegrityError, то есть идею использования get_or_create.

Не уверен, что это ошибка, я открыл билет https://code.djangoproject.com/ticket/16587

4b9b3361

Ответ 1

Кажется, ваша проблема заключается в том, что в вашем get_or_create больше столбцов, которые вы не включаете, см. этот поток в списке рассылки Django.

Вам нужно использовать параметр defaults get_or_create, как описано в docs, или указать значения для всех столбцов, для get_or_create - правильно соответствовать.