登录的不同页面与未登录用户的服务器与javascript

时间:2015-04-16 13:01:56

标签: javascript python django

我正在构建一个网站(使用带有django的python),您可以在其中访问用户页面并向他们请求某些内容,但该功能仅适用于已登录的用户,而未登录的用户仍可以查看页面,但不是发送请求的表单。 最佳做法是什么:

在服务器上直接请求该视图时加载不同的模板

- 使用javascript来更改“请求表单”所在的位置'将在验证用户是否登录后? 感谢

3 个答案:

答案 0 :(得分:3)

标准方法是在模板中使用简单的if语句。

{% if user.is_authenticated %}{% block form %}
{% else %} something else {% endif %}

要使用JS,您必须向服务器发出请求以查看用户是否已登录,因为quote someone else on SO"没有可靠的方法来执行此操作而不向服务器发出请求,因为会话可能已在服务器端过期。"

一般情况下,我建议在不需要服务器请求的情况下使用JS有条件地显示内容,除非您决定放弃标准的Django" MVT"类似于" MVVM"的范例在这种情况下,它都是JS。

答案 1 :(得分:1)

您可以使用相同的基本html页面,并根据用户是否登录有条件地呈现另一个模板。表单可以保存在该模板中。例如:

<body id="mySharedPage">
    ... Shared stuff ...
    {% if user.is_authenticated %}
        {% include "loggedInOnlyForm.html" %}
    {% endif %}
</body

答案 2 :(得分:1)

如果用户已登录,您可以在模板中使用user.is_authenticated仅渲染模板的给定部分。

{% if user.is_authenticated %}INSERT WHAT YOU WANT HERE{% endif %}