Ad
Adding A Url In Django-template
i tried to add a url in django template which is supposedly to log out a user
<div><a href="{% url 'accounts.views.user_logout' %}">logout</a></div>
but it threw a NoReverseMatch
the template:
<header class="grid-header header">
<div class='logo-text'>Nitro fleet</div>
<div class="profile-detail">
{% if user.is_authenticated %}
<img class="profile-img" src="{{user.picture.url}}" />
<div>
<div>{{user.username}}</div>
<div><a href="{% url 'accounts.views.user_logout' %}">logout</a></div>
</div>
{%endif%}
</div>
</header>
the url of the app (accounts) that has the logout view:
from django.urls import path
from . import views
appname = 'accounts'
urlpatterns = [
path('register', views.register_view , name='user_register'),
path('login', views.user_login , name='user_login'),
path('logout', views.user_logout , name='user_logout'),
]
the view function:
def user_logout(request):
logout(request)
return HttpResponseRedirect(request.path_info)
the complete error log:
NoReverseMatch at /maintenance/
Reverse for 'accounts.views.user_logout' not found. 'accounts.views.user_logout' is not a valid view function or pattern name.
Request Method: GET
Request URL: http://127.0.0.1:8000/maintenance/
Django Version: 3.2.9
Exception Type: NoReverseMatch
Exception Value:
Reverse for 'accounts.views.user_logout' not found. 'accounts.views.user_logout' is not a valid view function or pattern name.
Exception Location: C:\Users\PC\AppData\Local\Programs\Python\Python310\lib\site-packages\django\urls\resolvers.py, line 694, in _reverse_with_prefix
Python Executable: C:\Users\PC\AppData\Local\Programs\Python\Python310\python.exe
Python Version: 3.10.0
Python Path:
['C:\\Users\\PC\\Desktop\\nitrofleet',
'C:\\Users\\PC\\AppData\\Local\\Programs\\Python\\Python310\\python310.zip',
'C:\\Users\\PC\\AppData\\Local\\Programs\\Python\\Python310\\DLLs',
'C:\\Users\\PC\\AppData\\Local\\Programs\\Python\\Python310\\lib',
'C:\\Users\\PC\\AppData\\Local\\Programs\\Python\\Python310',
'C:\\Users\\PC\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages']
Server time: Mon, 31 Jan 2022 20:43:51 +0000
Ad
Answer
Just use the name of the view: {% url 'accounts:user_logout' %}
Ad
source: stackoverflow.com
Related Questions
- → Django, code inside <script> tag doesn't work in a template
- → Uncaught ReferenceError: Parent is not defined
- → React - Django webpack config with dynamic 'output'
- → Put a Rendered Django Template in Json along with some other items
- → Implement shopify templates in django
- → Python Shopify API output formatted datetime string in django template
- → How to avoid being crawled/penalized by Google
- → Django: Identify the urls that provide duplicate content and set a canonical link
- → Shopify app: adding a new shipping address via webhook
- → Jquery Modal Confirmation on Django form submit for deletion of object
- → changing the size of an image with css
- → shopify_auth multi store session handling
- → How to use Shopify Python API RecurringApplicationCharge
Ad