Javascript 调整django rest框架模板
我试图在这里调整代码的登录功能-Javascript 调整django rest框架模板,javascript,django,html,django-rest-framework,Javascript,Django,Html,Django Rest Framework,我试图在这里调整代码的登录功能- {% block userlinks %} {% if user.is_authenticated %} {% optional_logout request user %} {% else %} {% optional_login request %} {% endif %} {% endblock %} 我想让它在登录时,在“注销”之前显示一个值作为“dashboard”,并引用另一个用django表
{% block userlinks %}
{% if user.is_authenticated %}
{% optional_logout request user %}
{% else %}
{% optional_login request %}
{% endif %}
{% endblock %}
我想让它在登录时,在“注销”之前显示一个值作为“dashboard”,并引用另一个用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 %}
{%block userlinks%}
{%if user.u经过身份验证%}
{%可选\u注销请求用户%}
{%else%}
{%optional_登录请求%}
{%endif%}
{%endblock%}
这最终会在导航栏中生成一个单独的值,但这是我不想要的。如何将其内联?以下是适用于您的代码:
{% block userlinks %}
{% if user.is_authenticated %}
<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>{% optional_logout request %}</li>
</ul>
</li>
{% else %}
<li>{% optional_login request %}</li>
{% endif %}
{% endblock %}
{%block userlinks%}
{%if user.u经过身份验证%}
- {%可选的\u注销请求%}
{%else%}
{%optional_登录请求%}
{%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))
成功了。你让我走上了正确的方向。我必须做一些逆向工程才能得到它,并且必须使用rest_框架templatetags中的代码制作一个自定义模板标记。
{% load internal_extras %}
{% if user.is_authenticated %}
{% my_logout request user %}
{% else %}
{% optional_login request %}