UniqueConstraint выбрасывает IntegrityError на удаленную строку
У меня есть модель с UniqueContraint
class UserChallenge(models.Model):
id = models.UUIDField(primary_key=True, null=False, default=uuid.uuid4)
member = models.ForeignKey('people.Person',
on_delete=models.PROTECT,
related_name='challenges',
null=False)
challenge = models.ForeignKey(Challenge,
on_delete=models.PROTECT,
related_name='user_challenges',
null=False)
recurring = models.BooleanField(default=False)
class Meta:
constraints = [
models.UniqueConstraint(fields=['member', 'challenge'],
condition=Q(recurring=False),
name='unique_member_and_challenge')
]
Этим я хочу предотвратить появление дубликатов строк с одинаковыми challenge
и member
, и это работает нормально. Однако, когда я пытаюсь создать UserChallenge после удаления одного существующего, он по-прежнему выбрасывает IntegrityError
. Я имею в виду, что я удалил строку UserChallenge с определенными member
и challenge
, и когда я пытаюсь добавить новую запись с этими данными, она все еще выдает ошибку.
В чем здесь может быть проблема?