__init__ в TaskSerializer:
self.user = kwargs.pop('user')
super().__init__(*args, **kwargs)
Но как мне теперь его передать туда? Нужно ли мне писать свой метод get?
В методе get_serializer_class добавь в контекст request user
Вот тебе пример, поищи в чате perform_create
Хорошо. Так мне использовать get_serializer_class или perform_create?
А стоп, а нафига передавать юзера в сериализатор в листвью
Я не понял, что ты хочешь сделать
Да, ошибся немного RetrieveAPIView.
Ну тогда перформ_криейт
https://t.me/pydjango/555016
Благодарю. Решил так: def perform_create(self, serializer): serializer.save(user=self.request.user) def __init__(self, *args, **kwargs): self.user = kwargs['context']['request'].user Не подскажите, как мне теперь дотянуться до объекта, который был передан в serializers? Поле View?
Serializer.instance
И снова спасибо. Вот что получилось в итоге: def get_completed(self, obj): return self.user.__class__.objects.filter(tasks=obj).exists()
Обсуждают сегодня