Django Ошибка NoReverseMatch в / - Django Ошибка отсутствия совпадения с шаблоном - PullRequest
0 голосов
/ 02 августа 2020

Я пробовал много решений для inte rnet и пробовал много шаблонов URL, но ничего не работало нормально. вот мой urls.py

urlpatterns = [
re_path(r'^category/(?P<cat>\w+)/$',views.categoryPage,name="category"),
re_path(r'^',views.home,name="index"),
]

html ссылка

 <a class="nav-link" href='{% url "category" cat=mobiles %}'>Mobiles & Tablets <i class="fa fa-angle-down iconClr" aria-hidden="true"></i></a>

и views.py

def categoryPage(request,cat):

    return render(request,'amazonApp/categoryItem.html',context={'category_name':cat})

Ошибка в браузере

NoReverseMatch at /
Reverse for 'category' with keyword arguments '{'cat': ''}' not found. 1 pattern(s) tried: 
['category/<cat>']
Request Method: GET
Request URL:    http://127.0.0.1:8000/
Django Version: 3.0.8
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'category' with keyword arguments '{'cat': ''}' not found. 1 pattern(s) tried: 
['category/<cat>']
Exception Location: C:\Users\DELL\Django\amazon_affiliate\env\lib\site- 
packages\django\urls\resolvers.py in _reverse_with_prefix, line 677
Python Executable:   
C:\Users\DELL\Django\amazon_affiliate\env\Scripts\python.exe
Python Version: 3.8.5
]

Я попробовал одно Django решение для документации , но оно не помогло.

1 Ответ

1 голос
/ 02 августа 2020

Вам необходимо передать аргумент тегу url в виде строкового литерала

{% url "category" cat='mobiles' %}

У вас нет переменной с именем mobiles в вашем контексте, поэтому, когда вы используете cat=mobiles, это интерпретируется как cat=''

...