之前我在Django中已经配置了很多次url模式 突然间它不能正常工作,我不明白为什么......
我正在使用Django REST Framework,并且我正在使用Django的RequestFactory测试API。
这是我的网址格式:
url(r'^samples/(?P<sha256>\w+)/?$', endpoints.SampleAPI.as_view())
这是我测试GET请求的方式:
from django.test import RequestFactory
factory = RequestFactory()
request = factory.get('/samples/somehash')
response = endpoints.SampleAPI.as_view()(request)
这就是我想要做的事情:
class SampleAPI(APIView):
def get(self, request: Request, *args, **kwargs) -> Response:
sha256 = self.kwargs.get('sha256', None)
网址已解析,我会进入该方法,但出于某种原因,sha256
始终为None
(kwargs
字典始终为空!)。
奇怪的是,我在我开发的其他两个服务中做了完全相同的事情(关键字参数只有另一个名称),而且工作。
你们有没有看到我在这里失踪的东西?
编辑:更新帖子以显示 我测试了网址
答案 0 :(得分:0)
我不应该在我的测试中使用RequestFactory
,因为参数不会以这种方式传递给视图。
正确的方法是使用Django的测试Client
:
from django.test import Client
client = Client()
response = client.get('/samples/somehash')
对不起这里的新手错误。