Уникальность данных формы

Подскажите, пожалуйста. Я создала форму, в которой на один заказ можно выбрать больше 1 исполнителя. Кое-как сделала так, чтоб если пользователь по ошибки несколько раз выбрал одного и того же исполнителя при сохранении дублирование убиралась. Но как сделать так, чтоб при этом пользователь узнавал об этом, то есть что-бы возникало что-то из серии "вы выбрали одного и того же исполнителя несколько раз"

class JrtnPerson(models.Model):
    rtn = models.ForeignKey(Drtn, verbose_name='Подразделение Ростехнадзора', on_delete=models.CASCADE)
    name = models.CharField(max_length=200, verbose_name='Имя и Отчество')
    surname = models.CharField(max_length=200, verbose_name='Фамилия')
    tel_mob = PhoneNumberField(verbose_name="Номер телефона мобильный", blank=True, null=True)
    tel_rab = PhoneNumberField(verbose_name="Номер телефона рабочий", blank=True, null=True)
    email = models.EmailField(max_length=100, verbose_name="Электронная почта", blank=True, null=True)
    # def __str__(self):
    #     return '%s %s' % (self.surname, self.name)
    # def save(self, *args, **kwargs):
    #     if  not self.JrtnPerson.objects.filter(surname=self.surname, name=self.name).exists():
    #         super(self.surname, self.name).save(*args, **kwargs)
    class Meta:
        ordering = ('surname',)
        verbose_name = 'Сотрудник Ростехнадзора'
        verbose_name_plural = 'Сотрудники Ростехнадзора'
        unique_together = ('name', 'surname')

    def save(self, *args, **kwargs):
        self.full_clean()
        super(JrtnPerson, self).save(*args, **kwargs)

    def __str__(self):
        return '%s %s' % (self.surname, self.name)
class JrtnCurator(models.Model):
    expertise = models.ForeignKey(Cexpertise, verbose_name='Экспертиза', on_delete=models.CASCADE)
    curator = models.ForeignKey(JrtnPerson, verbose_name='Сотрудник Ростехнадзора', on_delete=models.CASCADE)

    def __str__(self):
        return '%s' % self.curator

    class Meta:
        ordering = ('curator',)
        verbose_name = 'Куратор от Ростехнадзора'
        verbose_name_plural = 'Кураторы от Ростехнадзора'
    def save(self, *args, **kwargs):
        if not self.__class__.objects.filter(expertise=self.expertise, curator=self.curator).exists():
            super(JrtnCurator, self).save(*args, **kwargs)
        else:
           raise ValidationError('Нельязя добавлять одного и того же куратора')

Ответы (1 шт):

Автор решения: Tim-Tam

Вам нужно добавить ограничения UniqueConstraint в класс Meta. Добавьте в класс Meta

 constraints = [
      models.UniqueConstraint(
          fields=('name', 'surname'), name='uniq_name'
      )
  ]
→ Ссылка