首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何修改模型字段,然后使用Python/Django中的Rest框架发送它?

如何修改模型字段,然后使用Python/Django中的Rest框架发送它?
EN

Stack Overflow用户
提问于 2015-01-13 03:51:29
回答 1查看 461关注 0票数 1

你好,在rest框架将数据发送到客户端之前,我需要修改一些数据。正在发送的数据来自模型对象。

这是我的模型的一个代码示例。

代码语言:javascript
运行
复制
class UserOptions(models.Model):
    options = models.TextField(null=False, null=True)

现在,当客户端请求特定用户的选项时,我需要修改选项,将2-3个其他模型中的元素组合添加到一个大的JSON字符串中。我假设是通过序列化程序来实现的,但是我不确定如何具体地相应地修改请求字段。

EN

回答 1

Stack Overflow用户

发布于 2015-01-13 08:18:54

如果你只是想返回这些数据,可以通过使用一个自定义的API接口来完成,它将允许你聚合所有你需要的数据,然后在SerializerMethodField响应中传递回来。

代码语言:javascript
运行
复制
class UserSerializer(serializers.ModelSerializer):
    options = serializers.SerializerMethodField()

    def get_options(self, obj):
        return {
            "something": obj.something,
        }

另一种选择是覆盖to_native (DRF 2) / to_representation (DRF 3),但这完全取决于您需要修改数据的位置和频率。

在任何一种情况下,您都应该使用watch out for N+1 queries,这将不可避免地涉及到跨外键处理数据。

如果您希望自动保存此自定义数据,可以通过覆盖视图上的the perform_create and perform_update hooks来实现。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27909676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档