【问题标题】:how to fix error in my PUT function (views.py)?如何修复我的 PUT 函数 (views.py) 中的错误?
【发布时间】:2019-10-01 02:08:26
【问题描述】:

我正在尝试使用 Django 和 Django-rest-framework 制作一个简单的 restful API (CRUD)。删除、更新和发布工作有效,但 put 功能是问题所在。

我试图评论其中的每一部分,每次我尝试运行服务器时,它都会给我一些错误。 第一个错误是给我的是:

从 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

【问题讨论】:

  • 您是否忘记在if 声明之前关闭)
  • Close ) 在 ArticleSerializer 第 32 行的 if 语句之前。
  • 各位大佬,看来是新用户了,能不能给点好心一点的改进空间?

标签: python django django-rest-framework


【解决方案1】:

你缺少括号

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

【讨论】:

    【解决方案2】:

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

    改变

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

    到这里

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多