@9550668

Django. DRF. Serializers. Как передать в сериалайзер дополнительную переменную при инициализации?

Всем добрый день!

Есть код:
class TestUpdateApiView(generics.RetrieveUpdateDestroyAPIView, TestCustomMixin):
    serializer_class = TestSerializer
    queryset = Test.objects.all()
    lookup_field = "id"


Как сделать так, чтобы я могу в сериалайзер передавать Юзера, обращающегося к данному CBV?

К примеру, как сделать примерно так:
serializer_class = TestSerializer(user=self.user)
И потом в сериализаторе:
def update(self, instance, validated_data):
        #self.instance.id -  ID записи на апдейт
        if self.instance.id.creator == {переменная пользователя, передаваямая в Сериалайзер}
                 ret = super().update(instance, validated_data)
                 return ret
        ...
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
JRazor
@JRazor
Senior StarkOverFlow Programmer
Что?
self.instance.id.creator
instance - это и есть тот самый объект, откуда надо брать данные.
Если так уж горит провести сравнение (непонятно какое, но пусть будет), то можно создать property в user и проверить там:
class User:
    @property
    def is_creator(self):
        # code

def update(self, instance, validated_data):
        if instance.is_creator:
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 сент. 2020, в 11:26
17500 руб./за проект
19 сент. 2020, в 10:21
10000 руб./за проект
19 сент. 2020, в 09:27
1000 руб./в час