Я хочу POST к DRF Viewset Detail Route. Это возможно? Я знаю, что с помощью DRF вы можете переопределить поле «Создать», но это не позволит вам получить доступ к подробному маршруту.
Конкретно в этом примере я хочу, чтобы дизайн маршрута был POST /foo/<pk>/
, а не какой-то маршрут вроде POST /foo/<pk>/bar/
.
Вот что я хочу сделать sh, обратите внимание на IS_THERE_A_WAY_TO_DO_THIS
:
class FooViewSet(
mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet
):
"""
Foo-related viewsets.
"""
permission_classes = [IsAuthenticated]
queryset = models.Foo.objects.all()
serializer_class = serializers.FooSerializer
@action(
methods=["post"],
detail=True,
permission_classes=[IsAuthenticated],
url_path="", <-- IS_THERE_A_WAY_TO_DO_THIS? Normally this wont work.
url_name="foobar",
)
def foobar_process(self, request, pk=None):
pass
urls.py
router = DefaultRouter()
...
router.register(r"foo", FooViewSet, basename="foo")
...
urlpatterns += [
re_path(r"^", include(router.urls)),
]