Book_ViewSet:
У меня есть ViewSet, который отвечает за все операции CRUD над продуктом. Рассмотрим API книг, где я могу создать книгу на основе заголовка и автора .
ISBN_View:
У меня есть другой вид, который принимает номера ISBNищет книгу, получает заголовок и автора и создает книгу из модели.
Что я хочу: после анализа данных ISBN и получения информации о книге,Я хочу создать новый POST-запрос к Book_ViewSet с данными книги в качестве тела.
Я попытался найти лучший способ сделать это, но люди предложили изменить текущий запрос и отправить его в другое представление. плохая практика.
==================================================================
class Book_ViewSet(viewsets.ModelViewSet):
queryset = Book.objects.all()
serializer_class = serializers.BookSerializer
def create(self, request, *args, **kwargs):
. . .
return super().create(request, *args, **kwargs)
def retrieve(self, request, *args, **kwargs):
. . .
return super().retrieve(request, *args, **kwargs)
def destroy(self, request, *args, **kwargs):
pass
def update(self, request, *args, **kwargs):
. . .
return super().update(request, *args, **kwargs)
class ISBN_view(generics.RetrieveAPIView):
def get(self, request, isbn=None, *args, **kwargs):
isbn, validation_error = self.validated_isbn(isbn)
if not isbn:
return Response(validation_error)
# Here I use ISBN to search up books, and grab data
# Here I want to call Book_ViewSet to create the Book instance
# with the data I grabbed from ISBN
return Response("bleep bloop")
def validated_advance_id(self, isbn):
pass
# isbn validation goes here.
====================================================================
Это плоходизайн? Любые советы о том, как я могу это сделать?