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 %}