Reputation: 129
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
Reputation: 15519
Instead using:
<a href = 'core/logout.html'>Logout</a>
you should use
<a href="{% url 'logout' %}">Logout</a>
Upvotes: 1