是否可以在Django模板语言中定位html元素的值?

时间:2017-01-31 07:22:14

标签: python django django-templates

<h1 class='username'>something</h1>

{% if request.user|stringify == .username %}

这样的事情是否可能?

2 个答案:

答案 0 :(得分:3)

不,你不能这样做。你对客户端和服务器端是什么感到困惑。您的动态HTML代码是通过Javascript处理的 - 这是客户端。 Django模板Languange用于服务器端,它生成一个渲染的html页面(这是javascript看到的)

从您的用例我想象

 {% if request.user.is_authenticated %}

可能已经足够了,因为您的注销按钮应该足够明显,以便注销用户看到该页面。

或者,您可以使用javascript隐藏它,然后更多地保护视图,以确保请求用户确实有权进行注销。

答案 1 :(得分:0)

假设您的退出按钮的html代码如下:

<h1 class='username'>something</h1>
<button class='logoutbtn'>Logout</button>

然后你可以用这样的javascript隐藏注销按钮:

<script type="text/javascript">

    $('.username').html(data.username);

    if (data.username != "{{ request.user }}" ) 
        { 
         $('.logoutbtn').hide();
        }

</script>

或者基于data.logged_in_user,如下所示:

<script type="text/javascript">

    $('.username').html(data.username);

    if (data.username != data.logged_in_user ) 
        { 
         $('.logoutbtn').hide();
        }

</script>