【问题标题】:Change django object name更改 django 对象名称
【发布时间】:2016-09-13 20:30:58
【问题描述】:

我有UserDetailsSerializer 类,如下所示。我想将它的对象名称从用户更改为数据以满足我的前端应用程序的 API 端点要求。我尝试通过互联网搜索,但不太确定如何获得这样的结果。

class UserDetailsSerializer(serializers.ModelSerializer):
    uid = serializers.SerializerMethodField('get_username')

    """
    User model w/o password
    """
    class Meta:
        model = UserModel
        fields = ('uid', 'email', 'first_name', 'last_name', 'id')
        read_only_fields = ('email', )

    def get_username(self, obj):
        return obj.username

我能想到的其他方法很少,它们用不同的名称重新分配视图中的对象(同样,我不确定它如何与序列化程序一起使用。)并更改前端应用程序 API要求。如果您能提供帮助,请告诉我。

【问题讨论】:

  • 您希望将哪个当前field 表示为user
  • 你用的是什么前端?似乎前端不应该关心您的用户对象的名称,但它可能只需要 json 对象的键是“数据”。那有意义吗?喜欢:{“数据”:{您的序列化数据}}

标签: python django django-rest-framework django-rest-auth


【解决方案1】:

您尚未提供视图的内容。我相信目前您返回的响应字典类似于:

{'user': UserDetailsSerializer(your_object).data}

在此将密钥 user 替换为 data

如果不是这样,请说明user 是在哪里定义的?

【讨论】:

    猜你喜欢
    • 2020-05-08
    • 2020-05-08
    • 2020-08-22
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    相关资源
    最近更新 更多