Получение MultiValueDictKeyError, возможно, из-за помех

Я сделал основную функцию поиска в моем базовом html-файле, а затем сделал фильтры для конкретных поисков. базовый html-файл называется consult_home.html.

consult_home.html

<form method="GET" action="{% url 'search' %}">
        
        <input type="search" placeholder="Search with any keyword..." name="searched" />
        <button class="srch-bttn" type="submit">SEARCH &nbsp<i class="fas fa-search"></i></button> 
 </form>

а функция представления, которая обрабатывает вышеуказанную форму, выглядит следующим образом

view.py

def search_univ(request):                           # SEARCHED CONTENT WILL BE DSIPLAYED IN THSI PAGE BAR IS IN CONSULT_HOME.HTML
        searched= request.GET['searched'].lower()
        
            
        if len(searched)>78 or len(searched)<1:
            search_result = Laws.objects.none()
            #return HttpResponse('The search is invalid. Please return back to previous page.')
           
        else:
            search_resul_Lawcat= Laws.objects.filter(law_category__icontains=searched)
            search_result_Judge =Laws.objects.filter(judgements__icontains=searched)
            search_result_Title =Laws.objects.filter(title__icontains=searched)
            search_result= search_resul_Lawcat.union(search_result_Judge, search_result_Title)
        if search_result.count() == 0:
            messages.warning(request, 'No search results found...')
        return render(request, 'search.html', {'searched': searched, 'search_result':search_result})

Сейчас я добавил кнопку для более конкретного поиска, которая ведет на страницу и коды в ней

поиск_цитат

 <form method="POST" action="{% url 'search' %}">
        {% csrf_token %}
        <input class="citation-srch" type="search" placeholder="eg. SCC(volume number) (page number) etc..." name="query" />
        <button class="srch-citation-bttn" type="submit"><i class="fas fa-search"></i></button> 
        
    </form>

и функция представления, которая обрабатывает вышеуказанную форму, является

vews.py

def srch_by_citation(request):
    if request.method == 'POST':

        searched_citation = request.POST.get['query']

        if len(searched_citation)>78 or len(searched_citation)<1:
            search_result = Laws.objects.none()
        else:
            search_result = Laws.objects.filter(equivalent_citations__icontains=searched_citation)
        if search_result.count() == 0:
            messages.warning(request, 'No search results found...')
            return render(request, 'search.html',{'search_result':search_result})
    else:
        return render(request, 'search_citation.html')

Сейчас при попытке поиска со страницы "search_citation.html" я получаю эту ошибку

.
MultiValueDictKeyError at /consultancy/search
'searched'
Request Method: POST
Request URL:    http://127.0.0.1:8000/consultancy/search
Django Version: 3.2.4
Exception Type: MultiValueDictKeyError
Exception Value:    
'searched'
Exception Location: C:\Users\Intel\Envs\test\lib\site-packages\django\utils\datastructures.py, line 78, in __getitem__
Python Executable:  C:\Users\Intel\Envs\test\Scripts\python.exe
Python Version: 3.7.4
Python Path:    
['C:\\Users\\Intel\\Envs\\test\\project',
 'c:\\users\\intel\\appdata\\local\\programs\\python\\python37\\python37.zip',
 'c:\\users\\intel\\appdata\\local\\programs\\python\\python37\\DLLs',
 'c:\\users\\intel\\appdata\\local\\programs\\python\\python37\\lib',
 'c:\\users\\intel\\appdata\\local\\programs\\python\\python37',
 'C:\\Users\\Intel\\Envs\\test',
 'C:\\Users\\Intel\\Envs\\test\\lib\\site-packages']
Server time:    Sun, 29 Aug 2021 12:26:58 +0000

Какова причина этой ошибки и что я должен сделать, чтобы ее устранить.

Скорее всего, потому что в search_citation.html вы все еще используете {% url 'search' %}, который переходит к представлению search_univ, но, похоже, вы хотели использовать url для srch_by_citation.

Так в search_citation.html:

<form 
    method="POST" 
    action="{% url 'search' %}"> <-- Change this to the url of `srch_by_citation`
...
</form>
Вернуться на верх