Доступ к одному сериализатору (Django Rest Framework) - PullRequest
0 голосов
/ 05 января 2019

Возможно, я не совсем понял концепцию сериализаторов, но, как я думаю, сериализаторы используются для представления объектов Python как объектов json.

Итак, мой вопрос, у меня есть модель:

class User(AbstractUser):
    messages = models.IntegerField(default=0)
    signup_date = models.DateField(auto_now_add=True)
    last_msg = models.DateField(null=True, blank=True)

и сериализатор:

class UserSerializer(serializers.ModelSerializer):
    password = serializers.CharField(write_only=True)

    class Meta:
        model = User
        fields = ['username', 'password', 'email']

Поскольку мой API View возвращает json, я хочу передать сериализованное имя пользователя, но не знаю, как этого добиться.

Это кусок кода, написанный без сериализаторов, поэтому я пытаюсь получить тот же результат, используя их:

chat_session = ChatSession.objects.get(uri=uri)
    owner = chat_session.owner

    if owner != user:  # Only allow non owners join the room
        chat_session.members.get_or_create(
            user=user, chat_session=chat_session
        )

    owner = deserialize_user(owner)
    members = [
        deserialize_user(chat_session.user)
        for chat_session in chat_session.members.all()
    ]

Как я могу получить доступ к своему сериализатору для определенного пользователя вместо использования пользовательской deserialize_user функции

1 Ответ

0 голосов
/ 05 января 2019

Я верю

members = UserSerializer(many=True).to_representation(chat_session.members.all())

сделает свое дело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...