Как добраться до стандартных сообщений об ошибках в формах django?

Подскажите новичку в джанго. Создал простой типовой проект, но после того, как решил его детализировать, появились вопросы. С каждым из которых могу зависать по нескольку дней, хотя решение потом находится простейшее. Так решил полностью отказаться от функций-контроллеров, передав их обязанности типовым классам-контроллерам - возникла проблема с обработкой ошибок при заполнении форм

models.py (фрагмент):

class Bb(models.Model):
    title = models.CharField(max_length=32, verbose_name='Товар')
    content = models.TextField(default='', blank=True, verbose_name='Описание')
    price = models.DecimalField(max_digits=10, decimal_places=2, default=0.00, verbose_name='Цена')
    published = models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Дата и время публикации',  )
    rubric = models.ForeignKey(Rubric, on_delete=models.PROTECT, null=True,  verbose_name='Категории',)

    class Meta:
        verbose_name_plural = 'Объявления'
        verbose_name = 'Объявление'
        ordering = ('-published', )

    def __str__(self):
        return f"{self.title} <{self.rubric}> (id={self.id})"

vies.py (фрагмент):

class BbCreateView(CreateView):
    template_name = 'bboard/create.html'
    form_class = BbForm
    success_url = reverse_lazy('bboard:index')


    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['rubrics'] = Rubric.objects.all()
        context['editing'] = 'CREATE'
        return context

models.py (соответствующий фрагмент):

class Bb(models.Model):
    title = models.CharField(max_length=32, verbose_name='Товар')
    content = models.TextField(default='', blank=True, verbose_name='Описание')
    price = models.DecimalField(max_digits=10, decimal_places=2, default=0.00, verbose_name='Цена')
    published = models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Дата и время публикации',  )
    rubric = models.ForeignKey(Rubric, on_delete=models.PROTECT, null=True,  verbose_name='Категории',)

    class Meta:
        verbose_name_plural = 'Объявления'
        verbose_name = 'Объявление'
        ordering = ('-published', )

    def __str__(self):
        return f"{self.title} <{self.rubric}> (id={self.id})"

create.html (фрагмент):

<form method= "post">
    {% csrf_token %}

    <table>
        {{ form.as_table }}
    </table>
    {% if editing == 'CREATE' %}
        <input type= "submit" value="Добавить" >
    {% else %}
        <input type= "submit" value="Изменить" >
    {% endif %}

</form>

Если ввести в форму невалидные данные или оставить пустыми обязательные поля, даже не вызывает is_invalid контроллера (если ее перегрузить). Все остается на странице, как и должно быть. Не могу только добраться до сообщений об ошибках в соответствующих полях. messages и form.errors так и остаются пустыми, потому что не вызывается POST без правильного заполнения формы. Всплывают только стандартные сообщения об ошибках в форме: 'Please fill out this field'

Как до них добраться. Пробовал добавлять error_messages в форму в Meta, в соответствующий поля атрибутом, в саму модель атрибутом к полям. Все игнорируется. Подскажите, можно ли это всковырять?


Ответы (0 шт):