Justin O'Brien
Justin O'Brien

Reputation: 129

Logout link not working django

In urls.py I have the following

from django.conf.urls import url
from django.contrib.auth.views import logout
from core import views as core_views

urlpatterns = [
    url(r'^logout/$', logout, {'template_name': 'core/logout.html'}, name='logout'),
    url(r'^profile/$', core_views.view_profile, name = 'view_profile'),

etc...

]

I have a base.html that is included on every page:

<!doctype html>

    <head>

        {% block head %}
        <title>base</title>
        {%  endblock %}

    </head>

    <body>

        <a href = 'core/logout.html'>Logout</a>
        {%  block body %}

        {% endblock %}
    </body>
</html>

The profile.html page:

{% extends 'core/base.html' %}

{% block head %}
    <title> Profile</title>
{% endblock %}

{% block body %}
    <h2>Profile</h2>
    <p>
    {{ user.first_name }}<br/>
    {{ user.last_name }}<br/>
    {{ user.email }}<br/>
    {{ user.userprofile.city }}
    </p>

{% endblock %}

The logout.html page:

 {% extends 'core/base.html' %}

 {% block head %}
    <title>Logout</title>
{% endblock %}

{% block body %}
<p>Logged out</p>
{% endblock %}

The problem is if the user is at /profile and clicks the logout link at the top of the page it sends the user to /profile/logout which does not exist, how do I get it to send the user to /logout ?

Upvotes: 0

Views: 107

Answers (1)

mariodev
mariodev

Reputation: 15519

Instead using:

<a href = 'core/logout.html'>Logout</a>

you should use

<a href="{% url 'logout' %}">Logout</a>

Upvotes: 1

Related Questions