[英]How to get Request.User in Django-Rest-Framework serializer?
[英]Django Rest Framework - How to get request.user on views.py?
我正在使用 Django 休息框架。 我需要让用户使用 views.py 但我不能。
from app.models import SmsToSend
from app.serializers import SmsToSendSerializer
from rest_framework import generics
from app.permissions import IsOwner
from rest_framework import permissions
class SmsToSendList(generics.ListCreateAPIView):
queryset = SmsToSend.objects.all()
serializer_class = SmsToSendSerializer
permission_classes = (IsOwner, permissions.IsAuthenticated)
def pre_save(self, obj):
obj.owner = self.request.user
我如何在这里调用 request.user ?
此致,
你很亲近。 我认为很多人花时间试图弄清楚这一点。 将请求定义为视图方法中的参数,您将可以像这样访问它。
def pre_save(self, request, obj):
obj.owner = request.user
你可以像这样得到你的查询。
request.REQUEST.get('<query>')
在序列化器方法中它略有不同,您可以获得这样的数据。
request = self.context['request']
user = request.user
query = request.GET['<query>']
希望这是有帮助的!
class SmsToSendList(generics.ListCreateAPIView):
#queryset = SmsToSend.objects.all()
serializer_class = SmsToSendSerializer
permission_classes = (IsOwner, permissions.IsAuthenticated)
def get_queryset(self):
user = self.request.user
return SmsToSend.objects.filter(owner=user)
def pre_save(self, obj):
obj.owner = self.request.user
我不得不使用 get_queryset 方法而不是查询集
def get_queryset(self, *args, **kwargs):
user_id = self.request.user.id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.