Уникальная ошибка валидации с base_field поля массива django при обновлении

<
def prevent_replicated_phone(phone):
    # Count all customers which own the same number
    phone_holders = Customer.objects.filter(phones__contains=[phone]).count()
    if phone_holders > 0 :
        raise ValidationError(
            f'The phone number: {phone} already exist',

class Customer(models.Model):
    def __str__(self) :
        return self.customer_name


    id = models.BigAutoField(primary_key=True)
    customer_name = models.CharField(max_length=100, null=False, blank=False, unique=True)
    phones = ArrayField(models.CharField(max_length=10, 
                        validators=[validate_phone_number, prevent_replicated_phone]), 
                                        default=list, null=True, blank=True)
    customer_type = models.CharField(max_length=10,default='patient', choices=CUSTOMER_TYPE)

   
Я хочу, чтобы номера телефонов в поле phones были уникальными для всех клиентов. Это работает нормально во время создания нового клиента, но во время обновления я получил уникальную ошибку проверки.

Допустим, у меня есть клиент, который звонит по телефону ['0795364588'].

Я отправляю запрос put для обновления телефонов клиентов новым массивом ['0795364588', '0668123544'].

Обновление телефонов клиентов почтальоном

Как я могу решить эту проблему.

Вернуться на верх