Django error NoReverseMatch on remote site but works fine locally

Viewed 62

My Django site is working fine locally. I am pushing it to my website but one of the links is not working and I can not for the life of me see why as similar things are working fine.

Here is my urls.py:

from . import views

app_name = 'sitepages'

urlpatterns = [
    path('', views.greeting_page_def, name='greeting_page_html'),
    path('home/', views.home_def, name='home_html'),
    path('specs/', views.specs_def, name='specs_html'),
    path('about/', views.about_def, name='about_name'),
    path('faq/', views.faq_def, name='faq_name'),
    path('howTos/', views.howTos_def, name='howTos_name'),
    path('howTos/puller', views.howTosPuller_def, name='howTosPuller_name'),
    path('howTos/conformer', views.howTosConformer_def, name='howTosConformer_name'),
    path('howTos/general', views.howTosGeneral_def, name='howTosGeneral_name'),
    path('howTos/submitter', views.howTosSubmitter_def, name='howTosSubmitter_name'),
]

And my views.py:

from django.shortcuts import render
from django.contrib.auth.decorators import login_required

# Create your views here.
def greeting_page_def(request):
    return render(request, 'sitepages/greeting_page_html.html')
def about_def(request):
    return render(request, 'sitepages/about.html')
def faq_def(request):
    return render(request, 'sitepages/faq.html')
def home_def(request):
    return render(request, 'sitepages/home.html')
def specs_def(request):
    return render(request, 'sitepages/specs.html')
def howTos_def(request):
    return render(request, 'sitepages/howTos.html')
def howTosPuller_def(request):
    return render(request, 'sitepages/howTosPuller.html')
def howTosConformer_def(request):
    return render(request, 'sitepages/howTosConformer.html')
def howTosGeneral_def(request):
    return render(request, 'sitepages/howTosGeneral.html')
def howTosSubmitter_def(request):
    return render(request, 'sitepages/howTosSubmitter.html')

and the html template that has the links.


{% extends 'base.html' %}
{% block content %}
{% load static %}

<a class="link-primary" href="{% url 'sitepages:howTosPuller_name' %}"} >How Tos - Puller</a>
<a class="link-primary" href="{% url 'sitepages:howTosSubmitter_name' %}"} >How Tos - Submitter</a>
<a class="link-primary" href="{% url 'sitepages:howTosGeneral_name' %}"} >How Tos - General</a>
<a class="link-primary" href="{% url 'sitepages:howTosConformer_name' %}"} >How Tos - Conformer</a>



{% endblock %}

all the links here work except for

<a class="link-primary" href="{% url 'sitepages:howTosGeneral_name' %}"} >How Tos - General</a>

when I click that I get

NoReverseMatch at /sitepages/howTos/
Reverse for 'howTosGeneral_name' not found. 'howTosGeneral_name' is not a valid view function or pattern name.

the other thing is it works locally but not on my site and I am pushing it via git and it looks the same.

Where am I going wrong?

1 Answers

All links have extra } at the end before closing of opening anchor tag.

So, the template should be:

{% extends 'base.html' %}
{% block content %}
{% load static %}

<a class="link-primary" href="{% url 'sitepages:howTosPuller_name' %}">How Tos - Puller</a>
<a class="link-primary" href="{% url 'sitepages:howTosSubmitter_name' %}">How Tos - Submitter</a>
<a class="link-primary" href="{% url 'sitepages:howTosGeneral_name' %}">How Tos - General</a>
<a class="link-primary" href="{% url 'sitepages:howTosConformer_name' %}">How Tos - Conformer</a>



{% endblock %}

Note: Always add / at the end of every route, so:

Urls.py:

from . import views

app_name = 'sitepages'

urlpatterns = [
    path('', views.greeting_page_def, name='greeting_page_html'),
    path('home/', views.home_def, name='home_html'),
    path('specs/', views.specs_def, name='specs_html'),
    path('about/', views.about_def, name='about_name'),
    path('faq/', views.faq_def, name='faq_name'),
    path('howTos/', views.howTos_def, name='howTos_name'),
    path('howTos/puller/', views.howTosPuller_def, name='howTosPuller_name'),
    path('howTos/conformer/', views.howTosConformer_def, name='howTosConformer_name'),
    path('howTos/general/', views.howTosGeneral_def, name='howTosGeneral_name'),
    path('howTos/submitter/', views.howTosSubmitter_def, name='howTosSubmitter_name'),
]
Related