Как использовать обратный просмотр URL с аргументом в Django? - PullRequest
1 голос
/ 25 февраля 2020

У меня есть следующий конфиг URL в моем Django проекте:

urlpatterns = [
    path('', views.record_create),
    path('<entry_method>/', views.record_create, name = "record_create"),
]

Вид:

def record_create(request, entry_method="bulk/"):

В моем шаблоне я делаю:

<a href="{% url "record_create" entry_method=request.path_info %}">

И я получаю следующую ошибку:

django.urls.exceptions.NoReverseMatch: Reverse for 'record_create' with keyword arguments '{'entry_method': '/bulk/'}' not found. 1 pattern(s) tried: ['(?P<entry_method>[^/]+)/$']

Не уверен, что я делаю неправильно. Любые предложения приветствуются.

1 Ответ

1 голос
/ 25 февраля 2020

Проблема не в обратном поиске. Проблема в том, что ваш entry_method в шаблонах URL по умолчанию является str преобразователем пути, а не path. Вы можете установить тип параметра с помощью:

urlpatterns = [
    path('', views.record_create),
    path('<<b>path:</b>entry_method>', views.record_create, name = "record_create"),
]

Для получения дополнительной информации см. Документацию по Конвертеры путей [Django -doc] .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...