【问题标题】:Inverse (write_only) SerializerMethodField in Django REST FrameworkDjango REST框架中的逆(write_only)SerializerMethodField
【发布时间】:2014-06-24 16:57:42
【问题描述】:

在 Django REST 框架中,是否存在 SerializerMethodField 的“逆”,即 write_only?我正在寻找的是一个Serializer,它将根据方法返回的值在模型上设置一个字段。

我不希望这个字段呈现一个小部件。

【问题讨论】:

  • 在这种情况下,您可能需要parser,而不是序列化程序。
  • @PauloScardine 虽然可以这样做(例如子类化现有的解析器,调用超级 parse 方法,然后将所需的值插入到解析的数据中),但我需要为每种解析方式(JSON、YAML 等)执行此操作。我要注入的内容发生在原始数据解码后。
  • 好的,在通用视图上覆盖pre_savepost_save 的mixin 怎么样?然后你只需要在声明你的视图时包含那个 mixin。
  • pre_save 的问题是它在模型序列化程序调用is_valid 之后被调用,这意味着该值不能用于验证其他字段。这也意味着如果我想验证这个“注入”值,我需要在视图中重新实现验证。
  • 确定值的时候一定要访问对象吗?结果基于哪些数据?

标签: django django-rest-framework


【解决方案1】:

我会尝试创建一个实现from_nativeWritableField 子类来执行您需要的转换。让它write_only——我认为这应该满足你的需要:)

【讨论】:

  • 这是否仍会在可浏览 API 上呈现输入小部件?
猜你喜欢
  • 1970-01-01
  • 2015-07-14
  • 2017-12-19
  • 2015-12-05
  • 1970-01-01
  • 2017-05-31
  • 1970-01-01
  • 2016-05-23
  • 2016-07-21
相关资源
最近更新 更多