简体   繁体   English

PUT 请求不更新 - Django Rest 框架

[英]PUT request doesn't update - Django Rest Framework

I'm trying to build a todos app using django-rest-framework and when I send PUT request to change the content of the task, the content is still the same.我正在尝试使用 django-rest-framework 构建一个 todos 应用程序,当我发送 PUT 请求以更改任务内容时,内容仍然相同。 It seems that the serializer.save() is not working as I expected.似乎 serializer.save() 没有像我预期的那样工作。 Here are the code:这是代码:

views.py视图.py

from rest_framework.response import Response 
from rest_framework.decorators import api_view 
from .models import Note
from .serializers import NoteSerializer

@api_view(['PUT'])
def updateNote(request, pk):
    note = Note.objects.get(id=pk)
    serializer = NoteSerializer(instance=note, data=request.data)

    if serializer.is_valid():
        serializer.save()

    return Response(serializer.data)

models.py模型.py

from django.db import models
class Note(models.Model):
    body = models.TextField(null=True, blank=True)
    updated = models.DateTimeField(auto_now=True)
    created = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.body[0:50]

serializers.py序列化程序.py

from rest_framework.serializers import ModelSerializer
from .models import Note


class NoteSerializer(ModelSerializer):
    class Meta:
        model = Note
        fields = '__all__'

I'm learning django so this is kinda new to me.我正在学习 django,所以这对我来说有点陌生。 I had searched for this problem but I'm kinda new to django so I don't understand these answers much.我已经搜索过这个问题,但我对 django 有点陌生,所以我不太了解这些答案。 Any help would be appreciated.任何帮助,将不胜感激。

@api_view(['PUT'])
   def updateNote(request, self, pk):
   note = get_object_or_404(Note.objects.all(), pk=pk)
   serializer = NoteSerializer(instance=note, data=request.data, partial=True)

   if serializer.is_valid():
     serializer.save()

   return Response(serializer.data)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM