gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 03:16:36 24 4
gpt4 key购买 nike

我们如何更改 lookup_field查找正则表达式 在 View 集和路由器中?


康德片段

# serializers.py
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('username', 'email', 'is_staff')


# views.py
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
lookup_field = 'email'

如果我们尝试以 /api/v1/users/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a1c7cecee1c3c0d38fc2cecc" rel="noreferrer noopener nofollow">[email protected]</a>/ 的形式访问详细 View 它引发了 404

最佳答案

路由器将匹配包含除斜杠和句点字符之外的任何字符的查找值。对于更严格(或更宽松)的查找模式,请在 View 集上设置 lookup_value_regex 属性。即在 View 类中设置 lookup_value_regex 以匹配 lookup_field

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


来源: DRF Routers

关于django - 更改 DRF 路由器中的查找正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55931369/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com