首页 > 解决方案 > 如何在 django 中使用 modelviewset 更新登录用户的数据

问题描述

第一次生成数据时尝试操作create方法,识别当前登录用户的数据后如果数据已经存在则尝试操作update方法。所以我编写了如下代码,但它并没有按照我想要的方式工作。

视图.py

class arduinoViewSet (ModelViewSet) :
    serializer_class = arduinoSerializers
    permission_classes = [IsAuthenticated]

    def get_queryset (self) :
        queryset = arduino.objects.filter(name=self.request.user)
        return queryset

    def perform_create (self, serializer) :
        serializer.save(name=self.request.user)

    def perform_update(self, instance, validated_data):
        instance.title = validated_data['name']
        instance.save()

序列化程序.py

class arduinoSerializers (serializers.ModelSerializer) :
    name = serializers.CharField(source='name.username', read_only=True)
    class Meta :
        model = arduino
        fields = ['pk', 'name', 'temp', 'humi']

如何编写代码以按照我想要的方式实现它?

标签: djangodjango-rest-frameworkdjango-viewsdjango-serializerdjango-generic-views

解决方案


推荐阅读