[英]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
始終為None
( kwargs
詞典始終為空!)。
奇怪的是,我在我正在開發的其他兩個服務中做的完全一樣 (只是關鍵字參數的另一個名稱),它們確實 起作用 。
你們看到我這里想念的東西嗎?
編輯:更新了帖子,以顯示我如何測試網址
好的,這是我沒有想到的愚蠢錯誤。
我不應該在測試中使用RequestFactory
,因為參數不會以這種方式傳遞給視圖。
正確的方法是使用Django的測試Client
:
from django.test import Client
client = Client()
response = client.get('/samples/somehash')
對不起,這里的新手錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.