Отключение отображения ошибок в поле формы crispy
У меня есть form
для выполнения поиска. Поскольку я использую первичный ключ для поиска, процесс поиска завершается успешно, но я получал ошибку под текстовым полем, говорящую Номер счета уже существует. Я сделал некоторые настройки и прекратил показ ошибок form
, но текстовое поле по-прежнему имеет красный контур всякий раз, когда я выполняю операцию поиска. Как я могу остановить form
от этого?
Код в forms.py
, который отключил форму для показа ошибок полей:
class InvoiceSearchForm(forms.ModelForm):
generate_invoice = forms.BooleanField(required=False)
class Meta:
model = Invoice
fields = ['invoice_number', 'name','generate_invoice']
def __init__(self, *args, **kwargs):
super(InvoiceSearchForm, self).__init__(*args, **kwargs)
self.helper = FormHelper(self)
self.helper.form_show_errors = False
self.helper.error_text_inline = False
self.form_error_title=False
HTML-код, который работает с операцией поиска:
<div class="myForm">
<form method='POST' action=''>{% csrf_token %}
<div class="row">
<div class='col-sm-12'>
<div class="form-row">
<div class="form-group col-md-3">
{{ form.invoice_number|as_crispy_field }}
</div>
<div class="form-group col-md-3">
{{ form.name|as_crispy_field }}
</div>
<div class="form-group col-md-3">
{{ form.generate_invoice|as_crispy_field }}
</div>
<div class="form-group col-md-3">
<br>
<button type="submit" class="btn btn-primary">Search</button>
</div>
</div>
</div>
</div>
</form>
</div>
Связанные с операцией поиска views.py
:
@login_required
def list_invoice(request):
title = 'List of Invoices'
queryset = Invoice.objects.all()
form = InvoiceSearchForm(request.POST or None)
context = {
"title": title,
"queryset": queryset,
"form":form,
}
if request.method == 'POST':
queryset = Invoice.objects.filter(invoice_number__icontains=form['invoice_number'].value(),name__icontains=form['name'].value())
context = {
"form": form,
"title": title,
"queryset": queryset,
}
return render(request, "list_invoice.html", context)
Красный контур текстового поля, который я получаю после выполнения операции поиска->
Я думаю, что вам нужно использовать forms.Form
вместо forms.ModelForm
, который предназначен для создания и обновления экземпляров Модели.