gpt4 book ai didi

python - 如何替换或编辑 django rest 框架路由器中的查找参数?

转载 作者:行者123 更新时间:2023-11-28 21:41:32 28 4
gpt4 key购买 nike

我已经设置了一个 Django Rest 框架 ModelViewSet对于产品模型。该产品有一个 uuid4主键字段。 API ListView 可以正常工作,但我无法使用默认路由器访问详细 View ,我猜是因为 uuid4主键不适合 pk路由器期望的整数正则表达式?错误是 TypeErrorpython3.6/site-packages/rest_framework/viewsets.py :

retrieve() got an unexpected keyword argument 'pk'

From the router documentation ,我相信我需要一个自定义路由器,但我不知道如何替换 {lookup}从整数 pk 正则表达式到 uuid4 正则表达式的字段 (?P<uuid>[a-f0-9]{8}-?[a-f0-9]{4}-?4[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}) .我认为源代码的相关部分是 here .

我现在的url配置如下:

from .views.API.product import ProductViewSet
from django.conf.urls import include
from rest_framework.routers import DefaultRouter

router = DefaultRouter()
router.register(r'product', ProductViewSet, base_name='product')
urlpatterns += [
url(r'^API/0.1/', include(router.urls)),
]

最佳答案

只需将您的代码更新为如下所示:

class ProductViewSet(ModelViewSet):
lookup_field = 'my_uuid_field'

lookup_field 告诉 DRF 使用这个字段而不是 pk 来获取项目

关于python - 如何替换或编辑 django rest 框架路由器中的查找参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44704084/

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