NoReserveMatch и Ошибка во время рендеринга шаблона - PullRequest
0 голосов
/ 31 марта 2020

Я новичок в этом деле. Во-первых, это мой urls.py

urlpatterns = [
    path('results/<int:id>/', views.abstract, name='abstract'),
    path('results/', views.result, name='result'),
    path('', views.index, name='index'),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

и мои wiews

def index(request):
  return render(request, 'online_sp/index.html')

def result(request):
    script = Main()
    data = script.json_dt
    if 'No result' in data.keys():
      no_result = True
      return render(request , 'online_sp/scripts.html', {'no_result':no_result})
    else:
      return render(request , 'online_sp/scripts.html', data)

def abstract(request, id):
  return render(request , 'online_sp/abstract.html')

. Моя цель - получить страницу результатов / 1 / одним нажатием кнопки со страницы результатов / '. (скрипт. html)

<a style="margin-left: 10%;" class="btn btn-dark" href="{% url 'abstract' 1%}" role="button">Abstratc</a>

, но он выдает ошибку NoReverseMatch и говорит, что в строке 0 в базе содержится ошибка. html, которая является шаблоном заголовка.

NoReverseMatch at /results/

Error during template rendering
    In template C:\MyPythonScripts\not_a_vlog\online_sp\templates\online_sp\base.html, error at line 0

Reverse for 'abstract' with no arguments not found. 1 pattern(s) tried: ['results/(?P<id>[^/]+)/$']

1   <!doctype html>
2   <html lang="en">
3   
4   <head>
5     <meta charset="utf-8">
6     <meta name="viewport" content="width=device-width, initial-scale=1,
7      shrink-to-fit=no">
8     <title>{% block title %}Search Similar Papers{% endblock title %}</title>
9   </head>
10  

, но когда я меняю

path('results/<int:id>/', views.abstract, name='abstract')

на

path('<int:id>/', views.abstract, name='abstract')

, он получает результаты / страницу с шаблоном тезисов. Тем не менее, я должен go результатов / страницы в первую очередь и нажмите кнопку, чтобы получить результаты / 1 /. я в замешательстве.

РЕДАКТИРОВАТЬ:

я узнал, что порядок важен на urls.py. новый urls.py:

urlpatterns = [
    path('results/', views.result, name='result'),
    path('results/<id>/', views.abstract, name='abstract'),
    path('', views.index, name='index'),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

дело закрыто: P

...