Python Django-如果此用户以前未访问过该站点,则在模板中显示消息

Python Django-如果此用户以前未访问过该站点,则在模板中显示消息,python,django,Python,Django,我想知道如何在Django模板中使用条件向新用户显示诸如“First time here”之类的消息 e、 g {%如果此网站未被用户%访问过} 第一次来这里? 遵循以下步骤。。。 {%endif%} 最好的方法是什么?谢谢假设您只想在页面顶部为已登录的用户(当前请求中有用户实例的用户)显示该横幅,您可以创建一个模型(或者,如果您有自己的用户配置文件模型,则在其中添加一个字段)来保存该模型 class Access(models.Model): user = models.Foreig

我想知道如何在Django模板中使用条件向新用户显示诸如“First time here”之类的消息

e、 g

{%如果此网站未被用户%访问过}
第一次来这里?
遵循以下步骤。。。
{%endif%}

最好的方法是什么?谢谢

假设您只想在页面顶部为已登录的用户(当前请求中有
用户
实例的用户)显示该横幅,您可以创建一个模型(或者,如果您有自己的用户配置文件模型,则在其中添加一个字段)来保存该模型

class Access(models.Model):
    user = models.ForeignKey(User)
    has_been_here_before = models.BooleanField(default=False)
在您的视图中,您必须检查该模型,以查看用户是否在那里注册并设置了标志

有关检测首次登录的信息,请参阅

有关检测对每个页面或视图的访问的信息,请参见


编辑:根据您的评论,如果匿名用户(未登录)首次访问,您希望向他们显示欢迎横幅

你可以通过使用。你可以像简单的口述一样使用

在您的主页视图中(或通过一个窗口),您可以检查用户是否已经取消欢迎横幅

def my_home_view(request):
    ...
    # as default 'show_welcome_banner' will be True
    context['show_welcome_banner'] = request.session.get('show_welcome_banner', True)
    ...
然后,在模板中使用:

{% if show_welcome_banner %}
    <h3>First time here?</h3>
    <h5>Follow these steps...</h5>
{% endif %}
注:

  • 如果用户通过匿名模式访问站点(当他关闭浏览器时,会话cockie会被删除),他将需要在每次打开匿名浏览器时单击Disclose按钮
  • 您还可以检查loggen用户是否看不到该横幅,具体取决于您的喜好

  • 如果用户第一次使用您的站点?或者仅当他第一次访问特定页面时?如果它涉及特定页面:有许多这样的页面,您想知道用户是否第一次访问它们吗?@Ralf第一次使用该站点;抱歉,我将编辑我的Q,以便更清楚地说明您的问题得到解决了吗?@Ralf不完全没有哈哈,虽然您的解决方案很好,但我一直在寻找用户全新的东西(即,尚未建立帐户,并且第一次访问home oage)
    {% if show_welcome_banner %}
        <h3>First time here?</h3>
        <h5>Follow these steps...</h5>
    {% endif %}
    
    def dismiss_welcome_banner(request):
        ...
        if request.method == 'POST':
            request.session['show_welcome_banner'] = False
        ...