在DRF ModelSerializer中生成自定义响应

萌远

我需要一些帮助,我已经在中使用ModelSerializerDRF,这是问题所在:

我想动态生成响应,这意味着我决定用户的输入,因此我需要将request参数传递给ModelSerializer,然后确定是否建立了我的条件,生成字段,否则生成其他字段。

像这样的东西:

class AlbumSerializer(serializers.ModelSerializer):

    class Meta:
        model = Album
        if request.SOME_CONDITION: 
            fields = ('id', 'name_fa', 'name_en', 'price')
        else: 
            fields = ('description', 'image_path_absolute', 'publisher')

我已经搜索过并且可以将参数使用传递context给序列化器,但是在序列化器中,我需要通过self对象获取参数

我怎样才能做到这一点?

萌远

我找到了。

我们需要重写__init__()序列化器类的方法,然后使用上下文获取参数,排除不需要的字段,最后调用超类。

def __init__(self, *args, **kwargs):
    if 'context' in kwargs:
        context = kwargs.get('context')
        if 'user' in context:
            if SOME_CONDITION:
                super(AlbumSerializer, self).__init__(*args, **kwargs)
                self.fields.pop(key)
                pass
    super(AlbumSerializer, self).__init__(*args, **kwargs)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

DRF自定义权限

来自分类Dev

DRF自定义权限未触发

来自分类Dev

DRF 的自定义视图和 url

来自分类Dev

DRF:相关序列化程序的自定义排序

来自分类Dev

在DRF中拒绝权限时返回自定义消息

来自分类Dev

DRF:自定义来自API的异常消息

来自分类Dev

DRF Serializer 处理生成的字段

来自分类Dev

如何使用DRF的ModelSerializer创建Django用户

来自分类Dev

自定义序列化程序中未定义 DRF 名称

来自分类Dev

在Verilog中生成自定义波形

来自分类Dev

在Verilog中生成自定义波形

来自分类Dev

在sql中生成自定义序列

来自分类Dev

使用自定义创建动作测试DRF模型时出现KeyError

来自分类Dev

在DRF ModelViewSet上的“创建用户”上的自定义错误消息

来自分类Dev

DRF自定义节流率无效,默认率有效

来自分类Dev

DRF自定义更新密码收到KeyError:“请求”

来自分类Dev

在DRF中管理自定义序列化程序的最佳方法是什么

来自分类Dev

Django - 如何在 DRF 中向某些用户授予自定义权限?

来自分类Dev

根据值自定义drf序列化器json输出中的key名

来自分类Dev

DRF 中 ManyToManyField 的自定义序列化程序和视图集

来自分类Dev

使用 DRF 归档响应的更好方法?

来自分类Dev

在DRF 3中的ModelSerializer上添加非模型字段

来自分类Dev

Django DRF序列化程序自定义关系字段如何构建to_internal_value的返回值?

来自分类Dev

我可以使用DRF重新创建ORO CRM API以获得我的项目的自定义功能

来自分类Dev

DRF 如何返回通过使用自定义路由器和模型视图集查找过滤的列表

来自分类Dev

在Java中生成自定义文本文件

来自分类常见问题

在SQL Server中生成自定义的月初和月底

来自分类Dev

如何在Django中生成自定义表单?

来自分类Dev

在自定义设备邮件程序中生成确认URL

Related 相关文章

  1. 1

    DRF自定义权限

  2. 2

    DRF自定义权限未触发

  3. 3

    DRF 的自定义视图和 url

  4. 4

    DRF:相关序列化程序的自定义排序

  5. 5

    在DRF中拒绝权限时返回自定义消息

  6. 6

    DRF:自定义来自API的异常消息

  7. 7

    DRF Serializer 处理生成的字段

  8. 8

    如何使用DRF的ModelSerializer创建Django用户

  9. 9

    自定义序列化程序中未定义 DRF 名称

  10. 10

    在Verilog中生成自定义波形

  11. 11

    在Verilog中生成自定义波形

  12. 12

    在sql中生成自定义序列

  13. 13

    使用自定义创建动作测试DRF模型时出现KeyError

  14. 14

    在DRF ModelViewSet上的“创建用户”上的自定义错误消息

  15. 15

    DRF自定义节流率无效,默认率有效

  16. 16

    DRF自定义更新密码收到KeyError:“请求”

  17. 17

    在DRF中管理自定义序列化程序的最佳方法是什么

  18. 18

    Django - 如何在 DRF 中向某些用户授予自定义权限?

  19. 19

    根据值自定义drf序列化器json输出中的key名

  20. 20

    DRF 中 ManyToManyField 的自定义序列化程序和视图集

  21. 21

    使用 DRF 归档响应的更好方法?

  22. 22

    在DRF 3中的ModelSerializer上添加非模型字段

  23. 23

    Django DRF序列化程序自定义关系字段如何构建to_internal_value的返回值?

  24. 24

    我可以使用DRF重新创建ORO CRM API以获得我的项目的自定义功能

  25. 25

    DRF 如何返回通过使用自定义路由器和模型视图集查找过滤的列表

  26. 26

    在Java中生成自定义文本文件

  27. 27

    在SQL Server中生成自定义的月初和月底

  28. 28

    如何在Django中生成自定义表单?

  29. 29

    在自定义设备邮件程序中生成确认URL

热门标签

归档