Ух ты, ты упускаешь целую часть цели Джанго. Используя форму django, вы можете делегировать всю свою проверку вашей форме. Если результатов не найдено, ваши ошибки доступа с использованием 'form.errors' и 'form.non_field_errors` в вашем шаблоне.
In forms.py
from django import forms
from .models import Regiest_Form
class RegisterSearchForm(forms.Form):
search=forms.Charfield(required=True)
def clean(self):
qs=Regiest_Form.objects.filter(Q(std_name__iexact=self.cleaned_data.get('search'))
if qs.exists():
self.add_error(field=None,error=forms.ValidationError("No results found"))
else:
return self.cleaned_data
@property
def results(self):
return Regiest_Form.objects.filter(Q(std_name__iexact=self.cleaned_data.get('search'))
В вашем views.py
from .forms import RegisterSearchForm
def search(request):
form = RegisterSearchForm(request.POST) if request.method== 'POST' else RegisterSearchForm()
if request.method== 'POST' and form.is_valid():
return render(request, 'Regiest_app/search.html',{'sr':forms.results, 'form':form})
return render(request, 'Regiest_app/search.html',{'form':form})