Django url 接受点的用户名正则表达式

Django url regex for username that accepts dots

我在 Django 中使用此 url 用户名正则表达式已有一段时间:

url(r'^.../(?P<username>[-\w]+)/$'

但是现在,我遇到了一个奇怪的情况,有时 Google 使用这样的用户名回答:

luke.skywalker 代替 lukeskywalker

我的正则表达式似乎不接受点 - 我收到 NoReverseMatch 错误。有人可以帮我正确的正则表达式吗?

您可以在方括号内添加您要接受的字符:

r'^.../(?P<username>[-\w.]+)/$'

只需将 lookup_value_regex 添加到您的 ViewSet:

class UserViewSet(viewsets.ModelViewSet):
      lookup_value_regex =  r"[\w.]+"

Source