Rod*_*ino 3 python django django-rest-framework
在休息框架中存在某种方式来使用会话用户而不是 pk 并self.get_object()在@detail_route视图中使用?
我想使用request.user而不是在 url 中发送 pk。
或者也许使用另一个装饰器代替@detail_route......
很难说你一开始想存档什么。也许在这种情况下使用单独的视图而不是视图集操作更容易?例如,这里是一个视图片段,让当前登录的用户管理他的帐户:
class CurrentUser(generics.RetrieveUpdateDestroyAPIView):
serializer_class = UserSerializer
def get_object(self):
return self.request.user
def perform_destroy(self, instance):
instance.is_active = False
instance.save()
Run Code Online (Sandbox Code Playgroud)
将此添加到您的urlpatternswithoutpk模式中:
url(r'^users/me/$', CurrentUser.as_view()),
Run Code Online (Sandbox Code Playgroud)
在我的项目中,我使用普通 Django 和 Django-rest-framework,并且使用request.user如下。
class ProfileRunCounts(generics.ListCreateAPIView):\n\n def get(self, request, *args, **kwargs):\n id = self.request.user\nRun Code Online (Sandbox Code Playgroud)\n\n评论后更新。
\n\n\n\n\nHttpRequest.user
\n\n
\n 来自 AuthenticationMiddleware:代表当前登录用户的 AUTH_USER_MODEL 实例。如果用户当前未登录\xe2\x80\x99,则用户将被设置为 AnonymousUser 的实例。REST框架的Request类扩展了标准的HttpRequest,增加了对REST框架灵活的请求解析和请求认证的支持。
\n\nAPIView 类与常规 View 类有以下不同之处:
\n\n传递给处理程序方法的请求将是 REST 框架的 Request 实例,而不是 Django 的 HttpRequest 实例。
\n
通过以上文档摘录,我相信用户对象始终可以在请求中使用。\n有时它在self.request.user,有时它在request.user.
| 归档时间: |
|
| 查看次数: |
2587 次 |
| 最近记录: |