Django 创建对象时如何在序列化程序的字段上动态添加“read_only=True”

Django 创建对象时如何在序列化程序的字段上动态添加“read_only=True”,django,django-rest-framework,Django,Django Rest Framework,我在两个视图中使用了三个层次的序列化程序。用于POST和修补程序调用 考虑到所执行的操作,我想知道如何动态更改pk字段上的read_only属性 如果我将此数据发送到endpont: { "id": 93, "name": "Template workout", "items": [ { "id": 74, "is_superset": false, "seq": "00002", "exercises": [

我在两个视图中使用了三个层次的序列化程序。用于POST和修补程序调用

考虑到所执行的操作,我想知道如何动态更改pk字段上的read_only属性

如果我将此数据发送到endpont:

{
  "id": 93,
  "name": "Template workout",
  "items": [
    {
      "id": 74,
      "is_superset": false,
      "seq": "00002",
      "exercises": [
        {
          "id": 50,
          "exercise": {
            "id": 3,
            "title": "sprint"
          },
          "set_type": "time",
          "rest": 30,
          "sets": [
            {
              "id": 141,
              "weight": null,
              "reps": null,
              "time_interval": 30
            },
            {
              "id": 142,
              "weight": null,
              "reps": null,
              "time_interval": 40
            },
            {
              "id": 143,
              "weight": null,
              "reps": null,
              "time_interval": 50
            }
          ]
        }
      ]
    }
  ]
}
我想从此结构中删除所有具有值的id键。 我认为在id为read\u only=True时通过序列化程序发送它是我的最佳选择,但我在更新时确实需要id。

您需要在序列化程序上创建方法,然后在已验证的\u数据中,您需要手动保存对象