我正在尝试在此处调整代码的登录功能-
{% block userlinks %}
{% if user.is_authenticated %}
{% optional_logout request user %}
{% else %}
{% optional_login request %}
{% endif %}
{% endblock %}
我希望它在登录时也能在“注销”之前显示一个值作为“仪表板”,并引用另一个以django表示的URL。
所以在下拉列表中看起来像这样-
USER -
- dashboard
- logout
我认为这是在代码中添加一行这样的问题-
{% block userlinks %}
{% if user.is_authenticated %}
<a href="#dashboard">Dashboard</a>
{% optional_logout request user %}
{% else %}
{% optional_login request %}
{% endif %}
{% endblock %}
最终在导航栏中创建了一个单独的值,但是我不想这样做。我如何获得它的内联?
/myapp/templatetags/internal_extras.py
from __future__ import unicode_literals, absolute_import
from django import template
from django.core.urlresolvers import reverse, NoReverseMatch
from django.http import QueryDict
from django.utils import six
from django.utils.encoding import iri_to_uri
from django.utils.html import escape
from django.utils.safestring import SafeData, mark_safe
from django.utils.html import smart_urlquote
from rest_framework.compat import urlparse, force_text
import re
register = template.Library()
@register.simple_tag
def my_logout(request, user):
"""
Include a logout snippet if REST framework's logout view is in the URLconf.
"""
try:
logout_url = reverse('rest_framework:logout')
except NoReverseMatch:
return '<li class="navbar-text">{user}</li>'.format(user=user)
snippet = """<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
{user}
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href='/dashboard'>Dashboard</a></li>
<li><a href='{href}?next={next}'>Log out</a></li>
</ul>
</li>"""
return snippet.format(user=user, href=logout_url, next=escape(request.path))
然后在我的HTML中,我有以下内容-
{% load internal_extras %}
{% if user.is_authenticated %}
{% my_logout request user %}
{% else %}
{% optional_login request %}
做到了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句