【问题标题】:Access a single serializer (Django Rest Framework)访问单个序列化程序(Django Rest Framework)
【发布时间】:2019-01-05 17:48:48
【问题描述】:

我可能无法正确理解序列化程序的概念,但我认为,序列化程序用于将 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 视图返回 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 函数

【问题讨论】:

    标签: python django django-rest-framework


    【解决方案1】:

    我相信

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

    会成功的。

    【讨论】:

    • 是的,就是这样!谢谢
    猜你喜欢
    • 2018-06-07
    • 1970-01-01
    • 2020-08-04
    • 2016-05-06
    • 2016-12-18
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多