首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在views.py中获取登录用户的数据?(Django social-auth-app-django)

如何在views.py中获取登录用户的数据?(Django social-auth-app-django)
EN

Stack Overflow用户
提问于 2020-06-23 16:33:17
回答 1查看 66关注 0票数 0

我已经成功地使用Social-Auth-App-Django登录了我的facebook帐户。现在我需要获取我的用户ID,这样我就可以使用该用户的ID来过滤数据库,但是我不知道该怎么做。在django模板中,它看起来像这样的{{ user.id }},但我不知道如何在views.py中获取它

以下是我用于登录facebook的模板代码

代码语言:javascript
复制
    <a href="{% url 'social:begin' 'facebook' %}" class='btn'>
         <img src="/static/img/facebook.png" alt="">
         Login with Facebook
    </a>

下面是我用views.py编写的代码

代码语言:javascript
复制
    @login_required
    def home(request):
         items = Products.objects.filter(product_owner__id=user_id)
         return render(request, 'seller.html', {
             "items": items
    })

user_id才是我真正需要的。

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2020-06-23 16:41:03

你这样做的方式应该是;

代码语言:javascript
复制
@login_required
def home(request):
    items = Products.objects.filter(product_owner=request.user)
    return render(
        request,
        'seller.html',
        {
            "items": items
        }
    )

但是,如果您没有login_required装饰器,这将无法工作。在这种情况下,您必须检查它们是否经过身份验证。

这种情况看起来更像是;

代码语言:javascript
复制
def home(request):
    if request.user.is_authenticated:
        items = Products.objects.filter(product_owner=request.user)
    else:
        items = Products.objects.none()

    return render(
        request,
        'seller.html',
        {
            "items": items
        }
    )

与此相关的文档可在此处找到;https://docs.djangoproject.com/en/3.0/topics/auth/default/#authentication-in-web-requests

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62530584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档