django 模板中的 user.is_authenticated 遇到问题

2024-01-02

很抱歉,如果您在我之前问这个问题时尝试帮助我。不得不删除该问题,因为由于某种原因我不被允许编辑其他信息。

我正在努力在我的 Django 网站上实现用户身份验证。一切正常。我的视图、模型、url 等都设置好了。用户可以注册、登录、注销。我遇到的问题是这段代码:

{% if request.user.is_authenticated %}
      <li><a href="/logout">Log Out</a></li>
      {% else %}
      <li><a href="/login">Log In</a></li>
      {% endif %}

即使我登录了,它仍然显示“登录”作为选项,而不是“注销”。但是,如果我单击该链接,它会将我重定向到 /profile,因为这就是视图告诉它在我登录后要做的事情。因此,显然它知道我已登录,但模板没有readint user.is_authenticated 为 true。

与登录请求相关的视图是:

def LoginRequest(request):
    if request.user.is_authenticated():
        return HttpResponseRedirect('/profile/')
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['username']
            password = form.cleaned_data['password']
            profile = authenticate(username=username, password=password)
            if profile is not None:
                login(request, profile)
                return HttpResponseRedirect('/profile/')
            else:
                return render_to_response('template/login.html', {'form': form}, context_instance=RequestContext(request))
        else:
            return render_to_response('template/login.html', {'form': form}, context_instance=RequestContext(request))
    else:
        ''' user is not submitting the form, show them login form ''' 
        form = LoginForm()
        context = {'form': form}
        return render_to_response('template/login.html', context, context_instance = RequestContext(request))

如果启用了身份验证上下文处理器,则user已经在模板上下文中,你可以这样做:

{% if user.is_authenticated %}

如果您想访问request在模板中,确保您已启用请求上下文处理器 https://docs.djangoproject.com/en/1.11/ref/templates/api/#django-template-context-processors-request.

在你的问题中你正在使用render_to_response。从 Django 1.3 开始,使用起来就更好了render代替render_to_response. Using render_to_response with RequestContext(request)适用于 Django render如果您希望上下文处理器工作,可以使用快捷方式。

return render(request, 'template/login.html', context)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django 模板中的 user.is_authenticated 遇到问题 的相关文章

随机推荐

  • 如何保持 ExpandableListView 打开?

    我正在研究 ExpandableListView 我已经完成了工作 现在我只想做的一件事是我不希望 ListView 在单击可扩展列表视图时变为 DropDown 而是希望显示它与所有项目一起打开无需对其进行任何单击即可显示在内部 谁能告诉
  • 正确使用 `for_each_arg` - 转发过多?

    我真的很高兴发现for each arg https twitter com ericniebler status 559119062895431680 这使得处理参数包变得更加容易 template
  • 将 AsyncLayoutInflater 与 DataBinding 结合使用

    我目前使用以下方法来膨胀我的大部分布局DataBindingUtil inflate inflater layoutId parent attachToParent https developer android com reference
  • 通过 OSX ssh rsync 保留别名

    我在 OSX Yosemite 上通过 ssh 进行 rsync 保存别名时遇到了麻烦 rsync av e ssh email protected cdn cgi l email protection Users me stuff Use
  • 使用带有投影的 find() 方法使用 mongodb java driver 3.4 检索数据

    我正在使用 mongodb java 驱动程序 3 4 mongodb数据库中文档按照以下结构保存 id ObjectId 595a9fc4fe3f36402b7edf0e id 123 priceInfo object1 value1 o
  • 从 CSV 数据中删除尾随逗号

    这是在另一个数字后添加逗号的代码 但我想删除最后一个逗号 str MSISDN Append MSISDN x TrimStart 我建议您使用而不是手动附加内容String Join这将使事情一开始就正确 您可以使用 LINQ 来修剪值
  • 如何提高Redis服务器的CPU使用率?

    我的目标是让我们的 Redis 服务器在生产中达到 80 左右的 CPU 利用率 这将有利于我们的后端服务器设计 确保我们不会充分利用 CPU 同时也为增长和峰值留出一些空间 在使用Redis自己的基准测试工具时redis benchmar
  • 在嵌套文件夹中查找文件[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在嵌套文件夹中搜索文件 看看这个函数 System IO DirectoryInfo GetFiles SearchPattern
  • 如何检查我的应用程序从磁盘写入和读取了多少字节?

    我不知道我是否没有使用正确的词在网络上搜索 但我没有找到解决方案来查看我的应用程序已经在磁盘上读取和写入了多少 有人可以帮我解决这个问题吗 tks 解决 如果有人需要功能标志 type IO COUNTERS record ReadOper
  • 如何获取当前页面的html?

    我想解析当前页面的html 如何在asp net中获取当前页面的html 提前致谢 对于客户端 在互联网浏览器中 右键点击浏览器 gt 查看源代码 在火狐浏览器中 右键点击浏览器 gt 查看页面源代码 对于服务器端 您可以重写页面的渲染方法
  • 尝试在路径 file:///var/mobile/Media/PhotoData/Photos.sqlite 添加只读文件?

    我刚刚更新到新的 Xcode beta 6 0 当尝试使用 iOS 8 为 ipad mini 进行编译时 我在控制台中收到一个奇怪的错误 尝试在路径 file var mobile Media PhotoData Photos sqlit
  • JTextPane 换行行为

    最近我一直在做一个Java文本编辑器项目 我想使用JTextPane更换旧的JTextArea以实现语法高亮 然而 一个JTextPane缺乏方法JTextArea 例如append getLineStartOffset 等 我想在我的课堂
  • 如何在 Spark 2.0 中启用笛卡尔连接? [复制]

    这个问题在这里已经有答案了 我必须在 Spark 2 0 中交叉连接 2 个数据帧 但遇到以下错误 用户类抛出异常 org apache spark sql AnalysisException Cartesian joins could b
  • 序列化器仅来自指定控制器的方法 - Spring、JSON Jackson

    我有 2 个控制器和一个具有自定义序列化字段的 get 方法 如下所示 JsonSerialize using MySerialization class 但我想在我从 A 控制器而不是 B 控制器调用方法时进行此序列化 我如何指定这一点
  • 使用 JUnit 内部类中的测试用例

    我读到构建单元测试 http haacked com archive 2012 01 02 structuring unit tests aspx每个类都有一个测试类 每个方法有一个内部类 我认为这似乎是一种组织测试的便捷方法 因此我在 J
  • 当从两个数据框构建绘图时有两个图例

    我有两个这样的数据框 library ggplot2 set seed 1 x1 rnorm 100 y1 rnorm 100 x2 rnorm 100 y2 rnorm 100 df1 data frame x x1 y y1 col1
  • 在 pdfmake 中嵌入背景图像

    我正在使用 pdfmakehttp bpampuch github io pdfmake index html gettingstarted http bpampuch github io pdfmake index html gettin
  • JavaPackage 对象不可调用错误:Pyspark

    像 dataframe show sqlContext read json 这样的操作工作正常 但大多数函数都会给出 JavaPackage object is not callable error 例如 当我这样做时 dataFrame
  • 当应用程序进入前台时查找当前视图。 IOS

    当应用程序激活时 我们如何找到当前哪个视图是第一响应者 我知道应用程序委托 applicationWillEnterForeground 和 applicationDidBecomeActive 在某些情况下将被调用 我如何使用它来亲密查看
  • django 模板中的 user.is_authenticated 遇到问题

    很抱歉 如果您在我之前问这个问题时尝试帮助我 不得不删除该问题 因为由于某种原因我不被允许编辑其他信息 我正在努力在我的 Django 网站上实现用户身份验证 一切正常 我的视图 模型 url 等都设置好了 用户可以注册 登录 注销 我遇到