1. <i id='vtmnQ'><tr id='vtmnQ'><dt id='vtmnQ'><q id='vtmnQ'><span id='vtmnQ'><b id='vtmnQ'><form id='vtmnQ'><ins id='vtmnQ'></ins><ul id='vtmnQ'></ul><sub id='vtmnQ'></sub></form><legend id='vtmnQ'></legend><bdo id='vtmnQ'><pre id='vtmnQ'><center id='vtmnQ'></center></pre></bdo></b><th id='vtmnQ'></th></span></q></dt></tr></i><div id='vtmnQ'><tfoot id='vtmnQ'></tfoot><dl id='vtmnQ'><fieldset id='vtmnQ'></fieldset></dl></div>
  2. <tfoot id='vtmnQ'></tfoot>
    • <bdo id='vtmnQ'></bdo><ul id='vtmnQ'></ul>
    <legend id='vtmnQ'><style id='vtmnQ'><dir id='vtmnQ'><q id='vtmnQ'></q></dir></style></legend>

    1. <small id='vtmnQ'></small><noframes id='vtmnQ'>

    2. 将当前用户置于视图中

      时间:2024-04-20

        <tfoot id='2R1Xb'></tfoot>

        1. <legend id='2R1Xb'><style id='2R1Xb'><dir id='2R1Xb'><q id='2R1Xb'></q></dir></style></legend>
            <tbody id='2R1Xb'></tbody>
          • <bdo id='2R1Xb'></bdo><ul id='2R1Xb'></ul>

              <i id='2R1Xb'><tr id='2R1Xb'><dt id='2R1Xb'><q id='2R1Xb'><span id='2R1Xb'><b id='2R1Xb'><form id='2R1Xb'><ins id='2R1Xb'></ins><ul id='2R1Xb'></ul><sub id='2R1Xb'></sub></form><legend id='2R1Xb'></legend><bdo id='2R1Xb'><pre id='2R1Xb'><center id='2R1Xb'></center></pre></bdo></b><th id='2R1Xb'></th></span></q></dt></tr></i><div id='2R1Xb'><tfoot id='2R1Xb'></tfoot><dl id='2R1Xb'><fieldset id='2R1Xb'></fieldset></dl></div>

                <small id='2R1Xb'></small><noframes id='2R1Xb'>

                本文介绍了将当前用户置于视图中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我正在使用Django身份验证登录用户:

                def signin(request):
                        if request.method == "POST":
                                username = request.POST.get("username").lower()
                                password = request.POST.get("password").lower()
                                user = authenticate(username = username, password=password)
                
                但是,我似乎无法在任何其他视图中访问当前用户。在每个模板中,我都有权访问用户,但似乎不能在视图本身中访问。例如,在另一个路由中,我希望能够执行以下操作:

                def profile(request):
                        skills = hasSkill.objects.filter(user__username=user.username)
                        return render(request, "/profile.html", {"skills" : skills})
                

                但是我一直收到一个错误,即用户是一个非etype对象。有什么想法吗?

                推荐答案

                您需要通过您获得的request访问user。您将使用request.user将视图更改为:

                def profile(request):
                        skills = hasSkill.objects.filter(user__username=request.user)
                        return render(request, "/profile.html", {"skills" : skills})
                

                Django文档here和here。

                Django使用会话和中间件挂接身份验证系统 添加到请求对象中。

                它们为每个请求提供一个request.user属性,每个请求 表示当前用户。如果当前用户尚未登录, 此属性将设置为AnonymousUser的实例,否则为 它将是User的实例。

                这篇关于将当前用户置于视图中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:访问全局变量时的模块&#39;s__setattr__和__getattr__ 下一篇:在字符串转换时获取枚举的值

                相关文章

                <small id='T6WN9'></small><noframes id='T6WN9'>

                  • <bdo id='T6WN9'></bdo><ul id='T6WN9'></ul>
                  <tfoot id='T6WN9'></tfoot>
                  <legend id='T6WN9'><style id='T6WN9'><dir id='T6WN9'><q id='T6WN9'></q></dir></style></legend>

                1. <i id='T6WN9'><tr id='T6WN9'><dt id='T6WN9'><q id='T6WN9'><span id='T6WN9'><b id='T6WN9'><form id='T6WN9'><ins id='T6WN9'></ins><ul id='T6WN9'></ul><sub id='T6WN9'></sub></form><legend id='T6WN9'></legend><bdo id='T6WN9'><pre id='T6WN9'><center id='T6WN9'></center></pre></bdo></b><th id='T6WN9'></th></span></q></dt></tr></i><div id='T6WN9'><tfoot id='T6WN9'></tfoot><dl id='T6WN9'><fieldset id='T6WN9'></fieldset></dl></div>