django路由器不接受带有"james i.adams"的用户名



我已经为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模式使用这样的用户名?

提前感谢

如您所见,URL值的默认正则表达式不包括.:

/users/(?P<username>[^/.]+)/
^

您将不得不更改正则表达式;如果你使用的是视图集,那很简单:

class UserViewSet(ModelViewSet):
lookup_value_regex = '[^/]+'

相关内容

  • 没有找到相关文章

最新更新