В настоящее время у меня возникает ошибка несоответствия URL для следующего URL http://127.0.0.1:8000/report/?report=Report
. Вопросы / ответы, найденные здесь и в других местах, бесполезны. У меня есть кнопка, с помощью которой я пытаюсь перенаправить.
report/ ?report=Report [name='candidate-report']
The current path, report/, didn't match any of these.
project.urls
:
from django.urls import include, path
from . import views
urlpatterns = [
path('', views.home_view, name='home'),
path('report/', include('Reports.urls'))
]
Reports.urls
:
from django.urls import path
from . import views
urlpatterns = [
path('?report=Report', views.candidate_report_view, name='candidate-report'),
]
Reports.views
:
from django.shortcuts import render
from .forms import CandidateReportForm
def candidate_report_view(request):
category_form = CandidateReportForm.category()
comment_form = CandidateReportForm.comment()
return render(request, 'candidate_report.html', {'category_form': category_form, 'comment_form': comment_form})
base.html
:
<form class="d-inline-block float-right" action="report/" method="get">
<input class="btn btn-primary" id="report_button" name="report" type="submit" value="Report">
1 ответ
В вашем файле Reports/urls.py
вы не хотите помещать строку запроса (?report=Report
) как часть URL-адреса, потому что она не является частью пути; это дополнительная информация.
Вы можете просто использовать:
urlpatterns = [
# Included in project/urls.py in the way you provided, this will
# resolve to simply '/report'.
path('', views.candidate_report_view, name='candidate-report'),
]
Затем в файле Reports/views.py
вы можете получить доступ к значению ключа report
в строке запроса, используя:
request.GET['report'] #Should give you the value 'Report', based on the HTML you shared.
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.