Search code examples
pythondjangourl-mapping

URL name keeps appending to end Django


I am running into a few issues regarding URL mappings in Django. I have the following code:

table.html:

<form id="filter_form" method="post" action="update_filters/">
    <input type="submit" name="submit" value="Report" />
</form>

urls.py:

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^update_filters/', views.filter_report, name='update_filters'),
]

views.py:

def filter_report(request):
    # Code in the function
    return render(request, 'autotester/table.html', context)

and everything works, but when I hit the "Report" button multiple times I get:

127.0.0.1:8000/autotester/update_filters
127.0.0.1:8000/autotester/update_filters/update_filters
127.0.0.1:8000/autotester/update_filters/update_filters/update_filters  
etc

and I have no idea what's causing it. There has to be some sort of simple fix for this but I just can't find it and I have been trying to figure this out for 3 hours now and my brain is just fried.


Solution

  • Try using {% url 'update_filters' %} template tag. And also add $ at the end of the regular expression in your url definition.

    url(r'^update_filters/$', views.filter_report, name='update_filters'),