django - 如何在 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']
如何编写代码以按照我想要的方式实现它?
解决方案
推荐阅读
- excel - Excel VBA 使用哪种随机数生成器?
- css - 属于联系表 7 多步骤一部分的按钮在移动版本上无法正确显示
- php - 如何在 php 上打开具有变量(数组)名称的文件?
- python - 如何制作我的脚本,只接收网页的 URL,解析其 POST 请求的响应?
- regex - 如何通过 .htaccess 将包含 2 个正斜杠的任何 URL 重定向到主页?
- azure-logic-apps - 来自 AzureLogicApps 的 Liquid 动态解析对象
- c# - JSON.NET:当键包含点时获取嵌套值?
- docker - 如何使用终端在 GitHub Actions 中添加密码?
- python - 如何使用一个 API 调用从谷歌电子表格中的所有工作表(选项卡)中获取所有记录?
- google-calendar-api - 从具有超级管理员 Google G Suite 帐户的域的 Google Calendar API 检索事件列表