Django-rest-framework: неверное регулярное выражение в 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-]+)/$" не является допустимым регулярным выражением: переопределение имени группы 'uuid' как группы 2; была группа 1 в позиции 46
.
urls.py в каталоге app:
router = routers.DefaultRouter()
router.register(r'url', views.V, basename='url')
Правильная конфигурация была бы такой ^url/approve/(?P<uuid>[\w-]+)/$, но, как говорит ошибка, это другой шаблон, и я не имею в виду его. Любая идея будет оценена по достоинству
Такая проблема решается простым добавлением параметра uuid в качестве аргумента метода.
def approve(self, request, uuid, *args, **kwargs):
`blah blah blah`