簡體   English   中英

Django Rest Framework - 如何在 views.py 上獲取 request.user?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM