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