В настоящее время у меня возникает ошибка несоответствия 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">
0
Luck Box 6 Апр 2021 в 02:28

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.

1
Dave 6 Апр 2021 в 00:30