TypeError: reverse() takes exactly 2 arguments (1 given)
TypeError: reverse() takes exactly 2 arguments (1 given)
由于某些奇怪的原因,即使我的 url 没有参数,反向函数也不起作用。
Url.py:
from django.urls import path
from . import views
urlpatterns = [
path("api/v2/app/nextdialog", views.NextDialog.as_view(), name="app-next-dialog"),
]
views.py:
class StartAssessment(generics.GenericAPIView):
def post(self, request, *args, **kwargs):
data = request.data
request = build_rp_request(data)
response = post_to_app_start_assessment(request)
path = get_path(response)
step = get_step(response)
data["path"] = path
data["step"] = step
request = build_rp_request(data)
app_response = post_to_app(request, path)
message = format_message(app_response)
return Response(message, status=status.HTTP_200_OK)
functions.py:
def get_endpoint(payload):
head = {
"Content-Type": "application/json",
}
url = reverse("app-next-dialog")
response = requests.post(url, data=json.dumps(payload), headers=head)
return response
当我 运行 这样做时,出现以下错误。
url = reverse("app-next-dialog")
TypeError: reverse() takes exactly 2 arguments (1 given)
请问有没有人知道这里出了什么问题。我认为我不需要添加任何其他论点。谢谢
您使用的是 Django reverse
还是 DRF reverse
?
Django 反向 return 当 DRF 反向可以 return 绝对 URI 时,它是一个相对 URI。
Django reverse
接受 1 个参数,所以这应该可以工作
url = reverse("app-next-dialog")
但是 DRF reverse
接受两个参数,例如:
url = reverse("app-next-dialog", request=request)
检查您的导入
由于某些奇怪的原因,即使我的 url 没有参数,反向函数也不起作用。
Url.py:
from django.urls import path
from . import views
urlpatterns = [
path("api/v2/app/nextdialog", views.NextDialog.as_view(), name="app-next-dialog"),
]
views.py:
class StartAssessment(generics.GenericAPIView):
def post(self, request, *args, **kwargs):
data = request.data
request = build_rp_request(data)
response = post_to_app_start_assessment(request)
path = get_path(response)
step = get_step(response)
data["path"] = path
data["step"] = step
request = build_rp_request(data)
app_response = post_to_app(request, path)
message = format_message(app_response)
return Response(message, status=status.HTTP_200_OK)
functions.py:
def get_endpoint(payload):
head = {
"Content-Type": "application/json",
}
url = reverse("app-next-dialog")
response = requests.post(url, data=json.dumps(payload), headers=head)
return response
当我 运行 这样做时,出现以下错误。
url = reverse("app-next-dialog")
TypeError: reverse() takes exactly 2 arguments (1 given)
请问有没有人知道这里出了什么问题。我认为我不需要添加任何其他论点。谢谢
您使用的是 Django reverse
还是 DRF reverse
?
Django 反向 return 当 DRF 反向可以 return 绝对 URI 时,它是一个相对 URI。
Django reverse
接受 1 个参数,所以这应该可以工作
url = reverse("app-next-dialog")
但是 DRF reverse
接受两个参数,例如:
url = reverse("app-next-dialog", request=request)
检查您的导入