Уникальность вместе вызывает IntegrityError
Django==4.1
Я задал ограничение уникальности вместе. Затем я пытаюсь проверить, действительно ли оно работает. Но у меня возникает IntegrityError.
Я надеялся, что уникальное ограничение together вызовет ValidationError. Но этого не произошло.
Могли бы вы помочь мне понять, не ошибаюсь ли я в своем предположении о ValidationError в данном случае. И как справиться с этой проблемой (какой метод переопределить и как)?
Модель
class Task(PriorityMixin,
CommentMixin, ):
# n-fipi
cypher = models.CharField(
max_length=255,
null=False,
default="",
)
fipi_section = models.ForeignKey("fipi_site_sections.FipiSection",
on_delete=models.CASCADE,
null=False,
blank=False)
page = models.PositiveIntegerField(null=False,
blank=False,
default=0)
task_description = models.ForeignKey("fipi_task_descriptions.TaskDescription",
on_delete=models.CASCADE,
null=False,
blank=False)
def __str__(self):
return self.cypher
class Meta:
ordering = ['fipi_section', 'page', 'priority', ]
constraints = [
models.UniqueConstraint(fields=['fipi_section', 'page', 'priority', ],
name='fipi_section-page-priority')
]
Traceback
Вместо models.UniqueConstraint
используйте unique_together
как :
class Meta:
unique_together = ('fipi_section', 'page', 'priority')
Кроме того, убедитесь, что вы вводите уникальную запись для этих полей.