Django 更改DRF路由器中的查找正则表达式

Django 更改DRF路由器中的查找正则表达式,django,django-rest-framework,django-views,Django,Django Rest Framework,Django Views,如何更改视图集和路由器中查找字段的查找正则表达式 压缩段 如果我们试图以/api/v1/users的身份访问详细视图/foo@bar.com/它将提高404路由器将匹配包含除斜杠和句点字符以外的任何字符的查找值。对于更严格(或更宽松)的查找模式,请在viewset上设置查找值\u regex属性。这是在视图类中设置lookup\u值\u regex以匹配lookup\u字段 # views.py class UserViewSet(viewsets.ModelViewSet): que

如何更改视图集和路由器中
查找字段的查找正则表达式


压缩段
如果我们试图以
/api/v1/users的身份访问详细视图/foo@bar.com/
它将提高404

路由器将匹配包含除斜杠和句点字符以外的任何字符的查找值。对于更严格(或更宽松)的查找模式,请在viewset上设置
查找值\u regex
属性。这是在视图类中设置
lookup\u值\u regex
以匹配
lookup\u字段


# views.py
class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    lookup_field = 'email'
    lookup_value_regex = '[\w.@]+' # You can set any valid regex here to match anything excepts 'slashes'
#views.py
类UserViewSet(viewsets.ModelViewSet):
queryset=User.objects.all()
serializer\u class=UserSerializer
查找\字段='电子邮件'
lookup_value_regex='[\w.@]+'#您可以在此处设置任何有效的regex,以匹配除“斜杠”之外的任何内容。

来源:

# views.py
class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    lookup_field = 'email'
    lookup_value_regex = '[\w.@]+' # You can set any valid regex here to match anything excepts 'slashes'