【问题标题】:url contains spaces in django v3url 包含 django v3 中的空格
【发布时间】:2020-04-19 16:28:28
【问题描述】:

我正在尝试创建我的第一个 django rest 框架项目,这就是我陷入的场景。

在项目的 urls.py 文件中我有这个:

urlpatterns = [
    path('admin/', admin.site.urls),
    # other paths
    path("api/", include("users.api.urls")),
    # other paths
]

在 users/api/urls.py 文件中我有这个:

urlpatterns = [
    path("user/", CurrentUserAPIView.as_view(), name="current-user")
]

这是视图(api/views.py):

from rest_framework.response import Response
from rest_framework.views import APIView
from users.api.serializers import UserDisplaySerializer


class CurrentUserAPIView(APIView):

    def get(self, request):
        serializer = UserDisplaySerializer(request.user)
        return Response(serializer.data)

我不明白为什么如果我去 localhost 的 url 列表看起来像这样:

admin/
... other paths
**api/ user/ [name='current-user']**
... other paths

如您所见,星号之间的行中的“用户”之前有一个空格。 如果我转到http://localhost:8000/api/user/,我会收到此错误:'str' object is not callable,我读到它与 url 配置问题有关。

【问题讨论】:

  • 空格不在真实的url中,这就是这些格式化的方式。
  • 分享你的views.py
  • @GrandPhuba 好的,我添加了 views.py 代码
  • 你能显示完整的错误吗?如果你附上图片会很棒..

标签: python django django-rest-framework


【解决方案1】:

当我没有在 URL 中添加结尾斜杠时,我收到了同样的错误,即 http://localhost:8000/api/user

从你的消息看来,斜线被附加了,但我想它可能会受到 Django 配置的影响。

【讨论】:

    猜你喜欢
    • 2015-02-04
    • 2010-12-17
    • 1970-01-01
    • 2022-12-10
    • 2017-05-08
    • 2018-07-12
    • 2012-11-27
    • 2011-03-11
    • 1970-01-01
    相关资源
    最近更新 更多