Добавление пользовательского действия в конечную точку пользователя / me Django Rest Framework - PullRequest
0 голосов
/ 06 января 2020

Я впервые спрашиваю здесь кое-что. Пожалуйста, помните, что на случай, если я что-то упустил. Если это так, я сделаю все возможное, чтобы дать ответ на все, что нужно.

Хорошо, поэтому я начинаю с Django Rest Framework и следую за курсом, но есть кое-что, что не совсем понятно для меня.

Я пытаюсь добавить пользовательскую функцию в конечную точку / user / me. В этой функции я хотел бы предоставить идентификатор пользователя [self.user.id] и вызвать функцию, например, развернуть AWS infra. Проблема не в коде AWS, а в его активации путем обращения к пользовательскому URL.

Содержимое моего views.py :

class ManageUserView(generics.RetrieveUpdateAPIView):
    """Manage the authenticated user"""
    serializer_class = UserSerializer
    authentication_classes = (authentication.TokenAuthentication,)
    permission_classes = (permissions.IsAuthenticated,)

    def get_object(self):
        """Retrieve and return authentication user"""
        return self.request.user

Из моего urls.py есть:

from django.urls import path

from user import views


app_name = 'user'

urlpatterns = [
    path('', views.CreateUserView.as_view(), name='create'),
    path('token/', views.CreateTokenView.as_view(), name='token'),
    path('me/', views.ManageUserView.as_view(), name='me')
]

Я попытался добавить следующую строку в мой views.py файл:

@action(methods=['POST'], detail=True, url_path='create-aws-infra')

Но когда я пытаюсь go в / user / me / create- aws -infra, я не могу получить к нему доступ. Я не уверен, что мне нужно импортировать DefaultRouter и изменить файл url.py , чтобы получить этот новый путь.

Опять же, я действительно новичок ie на этом топи c, поэтому, пожалуйста, извините меня и дайте мне знать, если потребуется какая-либо дополнительная информация.

Спасибо: D

...