Уникальная ошибка валидации с 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'].
Обновление телефонов клиентов почтальоном
Как я могу решить эту проблему.