gpt4 book ai didi

django - 休息框架 "get() missing 1 required positional argument"

转载 作者:行者123 更新时间:2023-12-02 08:21:05 26 4
gpt4 key购买 nike

我想将 GET 参数“pk”传输到 django Rest-framework。

浏览器

enter image description here

但在我的 view.py 中,我设置了 GET 方法来接收“pk”参数。

View .py

enter image description here

这是 urls.py 代码:

enter image description here

还有一个问题,如果我在pycharm中使用'objects'方法来建模对象,则会抛出异常,例如:

enter image description here

但是我的 friend 并没有发生这个异常。他使用的是pycharm 2017.4(macOS)

cateloydata = category.objects.all()

我的pycharm版本:pycharm 2017.2 python 版本3.6Django版本1.11.7

谢谢大家。

抱歉,我需要至少 10 个声誉才能发布图片。所以我的问题写得非常糟糕。

谢谢!

最佳答案

当您向网址添加参数时,您必须向方法定义添加一个额外的参数,如下所示:

# urls.py
url(r'^questions/(?P<pk>[\w:|-]+)/$', TheView.as_view(), name='view')

在上面的 url 中,您传递了一个 url 参数 (pk),因此您必须在方法中接收它:

# views.py
class TheView(APIView):
def get(self, request, pk):
...

但就您而言,您希望通过查询参数传递数据。

# urls.py
url(r'^questions/$', TheView.as_view(), name='view')

因此您不必在方法声明中接收它,请使用:

def get(自身, 请求):
pk = request.GET.get('pk')

相反。

关于django - 休息框架 "get() missing 1 required positional argument",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47523151/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com