簡體   English   中英

Django的URL分派器未提取kwarg

[英]Django's URL Dispatcher not extracting kwargs

之前,我已經在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)

URL被解析,我進入方法,但是由於某種原因, sha256始終為Nonekwargs詞典始終為空!)。
奇怪的是,我在我正在開發的其他兩個服務中做的完全一樣 (只是關鍵字參數的另一個名稱),它們確實 起作用

你們看到我這里想念的東西嗎?

編輯:更新了帖子,以顯示我如何測試網址

好的,這是我沒有想到的愚蠢錯誤。

我不應該在測試中使用RequestFactory ,因為參數不會以這種方式傳遞給視圖。
正確的方法是使用Django的測試Client

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

對不起,這里的新手錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM