如何使用JSON获取django模型关系?

时间:2014-01-01 13:34:23

标签: django json django-rest-framework

我不知道如何为这个问题构建一个准确的标题,但我尽我所能,所以请耐心等待。

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

您创建一个用户(使用令牌身份验证),然后创建一个播放器和/或一个管理器。

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

希望这有一定程度的意义!

由于

1 个答案:

答案 0 :(得分:1)

这不是一个关于JSON的问题。

令牌肯定与用户ID相关联?我没有使用django-rest-framework,但the documentation for TokenAuthentication非常明确,一旦用户使用其令牌登录,您将在{{1}中获得正常的auth.User实例就像你使用标准的基于Web的登录一样。

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

request.user

这也是标准的Django查询 - 如果您不熟悉该语法,则应该执行Django教程。

当然,既然您已拥有用户,则可以进行更有效的外键查找:

Manager.objects.get(email=my_email_address)

甚至

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

(假设您与用户之间存在一对一的关系 - 看看您的模型会很有帮助。)