如何修复我的PUT函数(views.py)中的错误?

时间:2019-05-14 05:52:49

标签: python django django-rest-framework

我正在尝试使用Django和Django-rest-framework创建一个简单的Restful API(CRUD)。删除,更新和发布有效,但是放置功能出了问题。

我尝试注释其中的每个部分,并且每次尝试运行服务器时都会出现一些错误。 给我的第一个错误是:

  

从article.views导入ArticleView
  文件“ C:\ Users \ Amirhossein.DESKTOP-FA436E8 \ Desktop \ Simple -API \ project \ article \ views.py”,第33行
  如果serializer.is_valid(raise_exception = True):
  SyntaxError:语法无效

即使我在POST方法中使用了这种语法,它仍然有效。

然后,我尝试注释我的代码的这一部分,并给了我这个错误:

  

从article.views导入ArticleView
  文件“ C:\ Users \ Amirhossein.DESKTOP-FA436E8 \ Desktop \ Simple -API \ project \ article \ views.py”,第37行
  def delete(self,request,pk):
  SyntaxError:语法无效

这是我的代码:

def put(self, request, pk):
    saved_article = get_object_or_404(Article.objects.all(), pk=pk)
    data = request.data.get('article')
    serializer = ArticleSerializer(instance=saved_article, data=data, partial=True
    if serializer.is_valid(raise_exception=True):
        article_saved = serializer.save()
    return Response({"success": "Article '{}' updated successfully".format(article_saved.title)})

这是我的代码的图片: enter image description here

2 个答案:

答案 0 :(得分:0)

在序列化程序行的末尾,您忘记了右括号

更改

serializer = ArticleSerializer(instance=saved_article, data=data, partial=True

对此

serializer = ArticleSerializer(instance=saved_article, data=data, partial=True)

答案 1 :(得分:0)

您缺少括号

serializer = ArticleSerializer(instance=saved_article, data=data, partial=True)