Как сделать значение уникальным для 2 полей в модели Django?
Мне нужно, чтобы все значения в 2 полях были уникальными для обоих полей. У меня есть username и email в моей пользовательской модели User. Я хочу предотвратить следующее:
user1 - имя пользователя = some_username, email = MY@EMAIL.COM
user2 - username = MY@EMAIL.COM, email = some_email
Я не хочу ограничивать '@' или '.', что я могу сделать?
Я нашел решение. Я просто переписал clean():
def clean(self):
if MyUserModel.objects.filter(Q(username=self.email) | Q(email=self.username)).exists():
raise ValidationError(self.EMAIL_VALIDATION_ERROR_MASSAGE)
super().clean()