如何确保数据来自 Django 中的登录用户?
How can I make sure that the data is from the login user in Django?
我正在尝试将从 Arduino 收到的数据保存在数据库中。我们已成功接收和存储温度和湿度数据,但无法 link 登录用户的数据。你能帮助我吗?
这是我的代码。
views.py
from .models import arduino
from .serializers import arduinoSerializers
from rest_framework.viewsets import ViewSet
from rest_framework.response import Response
from rest_framework.generics import CreateAPIView
class arduinoToAndroidViewSet (ViewSet) :
def dataSend (self, request) :
user = self.request.user
queryset = arduino.objects.filter(name = user)
serializer = arduinoSerializers(queryset, many=True)
return Response(serializer.data)
class arduinoToDatabaseViewSet (CreateAPIView) :
serializer_class = arduinoSerializers
def get_queryset(self) :
user = self.request.user
return arduino.objects.filter(name = user)
def dataReceive(self, request) :
queryset = get_queryset()
serializer = arduinoSerializers(queryset, many=True)
if serializer.is_valid() :
serializer.save()
return Response(serializer.data)
serializers.py
from rest_framework import serializers
from .models import arduino
class arduinoSerializers (serializers.ModelSerializer) :
name = serializers.CharField(source='name.username', read_only=True)
class Meta :
model = arduino
fields = ('name', 'temp', 'humi')
如果你post喜欢这样,
我想让你知道这是根的数据。
我登录测试账号,把数据放进去,按下post按钮。
这不会迁移到 'test' 帐户。我想将此数据与 'test' 帐户一起迁移。
您可以使用权限来限制访问
为了将用户链接到您的数据,添加 perform_create 函数(我假设名称字段对用户而言是 FK)
from rest_framework.permissions import IsAuthenticated
from rest_framework.generics import CreateAPIView
class arduinoToDatabaseViewSet(CreateAPIView):
permission_classes = [IsAuthenticated] # only logged in users has access to this view
def perform_create(self, serializer):
serializer.save(name=self.request.user)
我正在尝试将从 Arduino 收到的数据保存在数据库中。我们已成功接收和存储温度和湿度数据,但无法 link 登录用户的数据。你能帮助我吗? 这是我的代码。
views.py
from .models import arduino
from .serializers import arduinoSerializers
from rest_framework.viewsets import ViewSet
from rest_framework.response import Response
from rest_framework.generics import CreateAPIView
class arduinoToAndroidViewSet (ViewSet) :
def dataSend (self, request) :
user = self.request.user
queryset = arduino.objects.filter(name = user)
serializer = arduinoSerializers(queryset, many=True)
return Response(serializer.data)
class arduinoToDatabaseViewSet (CreateAPIView) :
serializer_class = arduinoSerializers
def get_queryset(self) :
user = self.request.user
return arduino.objects.filter(name = user)
def dataReceive(self, request) :
queryset = get_queryset()
serializer = arduinoSerializers(queryset, many=True)
if serializer.is_valid() :
serializer.save()
return Response(serializer.data)
serializers.py
from rest_framework import serializers
from .models import arduino
class arduinoSerializers (serializers.ModelSerializer) :
name = serializers.CharField(source='name.username', read_only=True)
class Meta :
model = arduino
fields = ('name', 'temp', 'humi')
如果你post喜欢这样,
我想让你知道这是根的数据。
您可以使用权限来限制访问
为了将用户链接到您的数据,添加 perform_create 函数(我假设名称字段对用户而言是 FK)
from rest_framework.permissions import IsAuthenticated
from rest_framework.generics import CreateAPIView
class arduinoToDatabaseViewSet(CreateAPIView):
permission_classes = [IsAuthenticated] # only logged in users has access to this view
def perform_create(self, serializer):
serializer.save(name=self.request.user)