【发布时间】:2022-01-18 10:31:17
【问题描述】:
我已经为user 模型注册了路由器,该模型的视图集的lookup_url 为username。
用户名james adams 被路由器接受,但james i. adams 出现以下错误
django.urls.exceptions.NoReverseMatch: Reverse for 'user-detail' with keyword arguments '{'username': 'james i. adam', 'version': 'v1'}' not found. 4 pattern(s) tried: ['(?P<version>(v4))/users/(?P<username>[^/.]+)/?\\.(?P<format>[a-z0-9]+)/?$', '(?P<version>(v4))/users/(?P<username>[^/.]+)/?$', '(?P<version>(v1))/users/(?P<username>[^/.]+)/?\\.(?P<format>[a-z0-9]+)/?$', '(?P<version>(v1))/users/(?P<username>[^/.]+)/?$']
有人可以指导我,我怎样才能在注册了路由器的情况下允许这样的用户名用于 url 模式?
提前致谢
【问题讨论】:
-
我看到你确实有一个答案,但更标准的做法可能是为记录生成一个唯一的 slug 并在 URL 中使用它而不是实际的用户名。如果您查看此问题的 SO URL,那正是他们在那里所做的......
标签: django django-rest-framework django-rest-viewsets drf-nested-routers