def list(self, request):
queryset = User.objects.all()
serializer = UserSerializer(queryset, many=True)
return Response(serializer.data)
А потом отдав это на сьедение router, я через сгенерированные url могу получить доступ не только к данным и возможностям, прописанным в функции list, но и ко всем наследуемым от класса ViewSet?
class UserViewSet(viewsets.ModelViewSet): queryset = User.objects.all() serializer_class = UserSerializer дает тебе list, create, update, delete, retrieve
А class UserViewSet(viewsets.ViewSet):? Тот пример я взял из документации, и если я правильно прочитал, то там тоже идет наследование этих функции? Моё знание английского такое себе, так что я мог не правильно понять
нет, ViewSet не содержит дополнительных эндпоинтов
Только прописанные самостоятельно? А в чем тогда разница с дженерик вьюсета и миксинов?
потому что дженерик сделан для миксинов, а просто вьюсет для написания своих методов. обычный вьюсет практически не используется
То есть Views и ViewSets используются не так часто, как Generic views?
ModelViewSet используется не так часто, как Generic views? За счет того, что Generic views даёт больший базовый функционал? Прошу прощения, за возможно глупые, с вашей точки зрения вопросы. У меня мало опыта в использовании этого инструмента.
ModelViewSet используется чаще всего, остальное тогда, когда нужен урезанный или кастомизированный функционал, тут уже по требованиям может быть что угодно от GenericViewSet с набором только нужных миксинов, до fbv
первое - да, второе - зависит от того какой именно кастом, если нужно переопределить один из методов или добавить кастомный экшн (дополнительный эндпоинт) то моделвьюсет тоже подойдет
Вот конкретно что я хочу сделать, так это дать возможность только читать данные. Другой функционал для данного раздела не требуется. Я верно понял, что в данном случае нужно посматривать в строну Generic views?
Обсуждают сегодня