Python 如何在django rest framework路由器中替换或编辑查找参数?

Python 如何在django rest framework路由器中替换或编辑查找参数?,python,django,django-rest-framework,Python,Django,Django Rest Framework,我已经为产品模型设置了Django Rest框架ModelViewSet。该产品有一个uuid4主键字段。API列表视图正在工作,但我无法使用默认路由器访问详细视图,我猜这是因为uuid4主键不符合路由器期望的pk整数正则表达式?该错误是python3.6/site packages/rest\u framework/viewsets.py中的TypeError: retrieve()获得意外的关键字参数“pk” ,我相信我需要一个自定义路由器,但我不知道如何将{lookup}字段从整数pk正则

我已经为产品模型设置了Django Rest框架
ModelViewSet
。该产品有一个
uuid4
主键字段。API列表视图正在工作,但我无法使用默认路由器访问详细视图,我猜这是因为
uuid4
主键不符合路由器期望的
pk
整数正则表达式?该错误是
python3.6/site packages/rest\u framework/viewsets.py中的
TypeError

retrieve()获得意外的关键字参数“pk”

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

我目前的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\u field
告诉DRF使用此字段而不是
pk
来获取项目