Я использую ModelForm для создания моей формы. Все отлично работает, кроме 1 вещи - проверка уникальности поля.
Код:
class Article(models.Model):
...
title = models.CharField(max_length=255, unique=True, error_messages={'max_length' : 'max translation',
'unique' : 'unique translation',
'required' : 'req translation',})
...
class ArticleForm(ModelForm):
...
title = forms.CharField(max_length=255, min_length=3, error_messages={'required' : 'req translation',
'min_length' : 'min translation',
'max_length' : 'max translation',
'unique' : 'unique translation',})
Но когда я сохраняю форму с неуникальным заголовком, я не получаю свою переведенную ошибку, но получаю ошибку по умолчанию. Как это исправить, чтобы отображалась моя уникальная ошибка поля?
EDIT:
Я нашел, я думаю, очень удобный способ сделать это. Может быть, кто-то будет использовать это:)
def unique_error_message(self, model_class, unique_check):
if 'put_field_name_here' in unique_check and len(unique_check) == 1:
return 'Here goes a custom unique error'
return super(Article, self).unique_error_message(model_class, unique_check)