error_messages для ManyToManyField в ModelForm - PullRequest
0 голосов
/ 09 августа 2011

У меня есть модель с полем ManyToManyField. У меня также есть ModelForm, который использует эту модель.

Как определить error_messages для такого поля?

Пример:

class Article(models.Model):
    categories = models.ManyToManyField(Category)

class ArticleForm(ModelForm):
    class Meta(ContentForm.Meta):
        model = Article

Я хочу переопределить «обязательное» сообщение об ошибке для поля категорий в модели ArticleForm.

Я гуглил об этой проблеме, но все решения не работают, либо они не из ModelForm или для ManyToManyField.

1 Ответ

1 голос
/ 10 августа 2011

Вы можете попытаться выполнить собственную проверку для этого поля.В наборе модели для m2m поле blank = True, а в форме реализовать метод clean_categories.Если категории полей недействительны, создайте исключение для своего контента.

В модели:

categories = models.ManyToManyField(Category, blank=True)

В форме:

def clean_categories(self):
    if not self.cleaned_data.get('categories'):
        raise forms.ValidationError('My custom message')
    return self.cleaned_data['categories']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...