如何隐藏一个按钮,以及如何在其上有一个新的标签重定向?

2024-04-29 13:56:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Geonode2.8公司实习。如果用户不在权限列表中,我必须隐藏Download Layer按钮。前一个实习生在老版本的Geonode中通过在按钮显示函数之前添加一个{% get_obj_perms request.user for resource.layer as "perms" %}实现了这一点。但当我把它添加到我的GeoNode版本中时,它没有改变任何东西,按钮仍然在那里。你知道吗

{% if resource.storeType != "remoteStore" %}
    {% get_obj_perms request.user for resource.layer as "layer_perms" %}
    <li class="list-group-item">
    {% if links or links_download %}
       <button class="btn btn-primary btn-md btn-block" data-toggle="modal" data-target="#download-layer">{% trans "Download Layer" %}</button>
    {% else %}
      {% if request.user.is_authenticated %}
          <button class="btn btn-primary btn-md btn-block" id="request-download">{% trans "Request Download" %}</button>
      {% endif %}
    {% endif %}
    </li>
{% endif %}

第二部分,我在导航栏中有一个按钮,重定向如下 <li><a href="{% url "help" %}">{% trans "Help" %}</a></li>

我的问题是下一个,我怎么能有一个重定向,但在一个新的标签,我认为我可以使用target = _blank,但它的django和它不工作。 这样地: <li><a target= "_blank" href="{% url "help" %}">{% trans "Help" %}</a></li>

我认为在urls.py中应该有所改变,但我是新来的,所以我不知道如何添加这个重定向。你知道吗

    url(r'^help/$',
        TemplateView.as_view(template_name='help.html'),
        name='help'),

Tags: layertransifrequestdownloadashelpbutton
2条回答

您应该使用您的函数{% if "download_resourcebase" in layer_perms %},并通过更改download来使用它,如change_resourcebase

您已获取用户对指定对象的权限

{% get_obj_perms request.user for resource.layer as "layer_perms" %}

但您尚未使用从此行获得的权限。因此,您需要检查用户是否拥有层对象的权限(例如can\u view、can\u download等)。你知道吗

您可以将代码更改为:

{% if resource.storeType != "remoteStore" %}
    {% get_obj_perms request.user for resource.layer as "layer_perms" %}
    <li class="list-group-item">

    {% if links or links_download %}
       {% if "can_download" in layer_perms %} # change here, check if user has required permissions
           <button class="btn btn-primary btn-md btn-block" data-toggle="modal" data-target="#download-layer">{% trans "Download Layer" %}</button>
       {% endif %} # close the condition
    {% else %}
      {% if request.user.is_authenticated %}
          <button class="btn btn-primary btn-md btn-block" id="request-download">{% trans "Request Download" %}</button>
      {% endif %}
    {% endif %}
    </li>
{% endif %}

确保您根据您的要求更改代码。你知道吗

为了进一步的参考,您可以看看guardian-template-tags

相关问题 更多 >