Реверс для 'export2' без аргументов не найден - PullRequest
1 голос
/ 13 марта 2019

У меня есть код, идентичный этому, но, очевидно, вызывается другое представление. Этот код работает, но по какой-то причине я продолжаю получать эту ошибку. Я новичок в django 2.1, так что извините, если это простое исправление.

views.py

def export_view(request,builddata=None):
  print(builddata)
  buildings = BuildingSearch.getBuildingString()
  return render(request, 'dashboard/export.html',{'buildlist': buildings,'builddata':builddata})

urls.py

urlpatterns = [
   path('export/<slug:builddata>/', views.export_view, name='export2'),
   path('export/', views.export_view, name='export'),
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

export.html

var times = ($("span#stringtime").text()).replace(" ","");
window.location.href = "{% url 'export2' %}/" + times + "/";

Я получаю эту ошибку, когда пытаюсь получить доступ к localhost: 8000 / export / (URL-адрес экспорта)

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Поскольку URL export2 ожидает builddata Итак, вам нужно передать значение builddata в {% url %} для получения обратного соответствия.

window.location.href = "{% url 'export2' builddata='sample' %}";

Из кода, которым вы поделились, я вижу, что вы хотите передать значение times в builddata. И times является переменной js.

Таким образом, вы можете использовать это для добавления переменной js в {% url %}.

var destinationUrl = "{% url 'export2' builddata=123321 %}".replace((/123321/, times.toString());
window.location.href = destinationUrl;

// END
0 голосов
/ 13 марта 2019

Ваша проблема в том, что вы используете {% url 'export2' %} в своем шаблоне.Но в ваших urlpatterns, URL для export2 имеет конфигурацию:

path('export/<slug:builddata>/', views.export_view, name='export2'),

Этот шаблон ожидает slug.Поэтому передайте некоторый контент при вызове URL как:

{% url 'export2' <something> %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...