django-rest-framework:url_path 中的正则表达式无效

django-rest-framework: invalid regular expression in url_path

我在其中定义了一个视图和操作:

class V(mixins.UpdateModelMixin, GenericViewSet):
      `` some codes``
      lookup_field = 'uuid'
   
      @action(detail=True, methods=['put'], permission_classes=[IsAdminUser], url_path='approve/(?P<uuid>[\w-]+)')
      def approve(self, request, *args, **kwargs):
          obj = self.get_object()
          `` some codes ``

该应用程序不 运行 因为:

django.core.exceptions.ImproperlyConfigured: "^url/(?P[^/.]+)/approve/(?P[\w-]+)/$" is not a valid regular expression: redefinition of group name 'uuid' as group 2; was group 1 at position 46

urls.py 在应用程序目录中:

router = routers.DefaultRouter()
router.register(r'url', views.V, basename='url')

正确的配置应该是 ^url/approve/(?P<uuid>[\w-]+)/$,但正如错误所说,这是另一种模式,我不是那个意思。任何想法将不胜感激

Thr 问题通过添加参数 uuid 作为方法的参数解决。

def approve(self, request, uuid, *args, **kwargs):
    `blah blah blah`