【问题标题】:How to get django model relations using JSON?如何使用 JSON 获取 django 模型关系?
【发布时间】:2014-01-01 13:34:23
【问题描述】:

我不知道如何为这个问题构建一个准确的标题,但我已尽力而为,请多多包涵。

我正在为我的曲棍球队开发一个应用程序,该应用程序由一个 django 应用程序和一个使用 JSON (django-rest-framework) 与 django 应用程序通信的移动应用程序组成。但是,我正在努力弄清楚如何解决的一个问题如下:

您创建一个用户(使用令牌身份验证),然后创建一个玩家和/或经理。

但是,当现有用户登录时,我正在努力解决的问题。我如何检查是否有与该用户关联的球员或经理?当我登录时,我从其余框架得到的只是用户的身份验证令牌,所以从编程的角度来看,我不知道它实际上是什么用户,因为我没有用户的 ID。即使我这样做了,我怎么能通过他们的 ID 以外的其他任何东西来查找玩家?目前我唯一的想法是抓住所有玩家并循环通过他们找到与当前登录用户具有相同电子邮件地址的玩家。

希望这有一定的意义!

谢谢

【问题讨论】:

    标签: django json django-rest-framework


    【解决方案1】:

    这不是关于 JSON 的真正问题。

    确定令牌与用户 ID 相关联吗?我不使用 django-rest-framework,但the documentation for TokenAuthentication 很清楚,一旦用户使用他们的令牌登录,您将在request.user 中获得一个普通的auth.User 实例,就像使用标准网络一样- 基于登录。

    您的第二个问题可能与此无关,但即便如此,您也可以随时通过电子邮件地址查询,而无需循环:

    Manager.objects.get(email=my_email_address)
    

    这又是标准的 Django 查询 - 如果您不熟悉该语法,您应该学习 Django 教程。

    当然,既然你已经有一个用户,你可以做一个更有效的外键查找:

    Manager.objects.get(user=request.user)
    

    甚至

    request.user.manager
    

    (假设您从用户到经理是一对一的关系 - 查看您的模型会很有帮助)。

    【讨论】:

    • 谢谢!但是,我确实认为我的问题在于 JSON,因为我认为就使用 Python 而言,我对 Django 有深入的了解。但是,由于我的移动应用程序仅使用 JSON(我没有太多经验)与 Django 应用程序通信,因此我不清楚如何正确查询我所追求的信息。到目前为止,我只获取了 JSON 响应消息,这些消息通常给了我我需要的东西并使用它,但是由于我在登录时只取回了身份验证令牌,所以我对用户的了解并不多。同样,我可能缺少一些基本知识..
    • 但是您肯定不会在客户端上这样做吗?您依靠服务器知道用户是谁,并查询数据库并适当地返回数据。这就是客户端-服务器分离的重点。您需要在服务器端编写自定义视图以返回您需要的数据。
    • 谢谢!这是有道理的,我想我需要回到绘图板并创建一些合理的视图来帮助我得到我需要的东西。谢谢。
    猜你喜欢
    • 2020-04-24
    • 2013-07-04
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多