Вывод в шаблон сообщения о наличии или отсутствии товара в БД

Новичок. Как правильнее сделать вывод сообщения об отсутствии товара в БД при вводе в datalist?

Сейчас это работает через try except. Но что-то мне подсказывает что можно применить валидатор или что-то подобное..

views.py

from django.shortcuts import render
from mainapp.forms import MainForm
from mainapp.models import CableCommonModel
from django.core.exceptions import ObjectDoesNotExist
def main(request):
    article_list = CableCommonModel.objects.all()
    form = MainForm(data_list=article_list)

    error_message = ''
    article = ''
    if request.method == 'POST':
        ff = MainForm(request.POST)
        article = request.POST.get('article2')
        try:
            r = CableCommonModel.objects.get(article=article)
        except ObjectDoesNotExist:
            error_message = 'Артикул не существует'
            print(error_message)
        else:
            error_message = ''

    content = {
        'error_message': error_message,
        'form': form,
    }

forms.py

class MainForm(forms.Form):
    article2 = forms.CharField(
        required=True,
        label='Артикул',
    )

    def __init__(self, *args, **kwargs):
        _article = kwargs.pop('data_list', None)
        super(MainForm, self).__init__(*args, **kwargs)
        self.fields['article2'].widget = ListTextWidget(
            data_list=_article, name='article')

index.html

{% load crispy_forms_filters %}
{% load static %}
{% load crispy_forms_tags %}

{% block content %}
    <form method="post">
        {% csrf_token %}
        {{ form|crispy }}
        {{ error_message | as_crispy_errors }}
        <input type="submit" class="btn btn-primary btn-block" value="проверить">
        
    </form>

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