Django的URL调度器没有提取kwargs

2024-09-29 06:28:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我以前在Django中配置过很多次url模式。
突然它不起作用了,我不知道为什么。。。在

我使用Django REST框架,并使用Django的RequestFactory测试API。
这是我的URL模式:

url(r'^samples/(?P<sha256>\w+)/?$', endpoints.SampleAPI.as_view())

以下是我测试GET请求的方法:

^{pr2}$

这就是我要做的:

class SampleAPI(APIView):
    def get(self, request: Request, *args, **kwargs) -> Response:
        sha256 = self.kwargs.get('sha256', None)

URL得到解析,我进入该方法,但是由于某些原因,sha256总是None(这个kwargs字典总是空的!)。
奇怪的是,我在我正在开发的另外两个服务中做了完全相同的事情(只是关键字参数的另一个名称),而且它们都起作用了。在

你们看到我遗漏了什么吗?在

编辑:更新了帖子,展示了我是如何测试url的


Tags: django方法self框架nonerestapiurl
1条回答
网友
1楼 · 发布于 2024-09-29 06:28:07

好吧,这是个愚蠢的错误,我没想到。在

我不应该在测试中使用RequestFactory,因为参数不会以这种方式传递给视图。
正确的方法是使用Django的测试Client

from django.test import Client
client = Client()
response = client.get('/samples/somehash')

很抱歉这里的新手错误。在

相关问题 更多 >