DRF嵌套的序列化器只写主键,但读时得到整个对象

问题描述

我不需要嵌套的创建/更新操作。我只想将创建的对象的pk写入FK / M2M字段,并在创建主要对象后从该FK / M2M字段获取对象。不是它的主键。

例如,我得到了ValueRelValue模型。它们是如何关联的:

class ValueRel(BaseModel):
    table = models.ForeignKey(
        Table,on_delete=models.PROTECT,)
    object_id = models.CharField(max_length=36)

    @property
    def related_object(self):
        related_model = self.table.get_model()
        related_object = related_model.objects.filter(pk=self.object_id).first()
        return related_object


class Value(BaseModel):
    profile = models.ForeignKey(
        Profile,on_delete=models.SET_NULL,blank=True,null=True,related_name="app_values",)
    # I want to write into this field `pk` and get its object
    value_rel = models.ManyToManyField(
        ValueRel,related_name="values",)
    ...

在创建ValueRel的实例并将其写入value_rel的实例的Value之后,我想获得ValueRel的实例,如object。

实际结果(来自API的JSON响应)

"value_rel": [
   "6a740343-0d37-4e6b-ba56-0c60ac51477f"
]

期待这个:

"value_rel": [
   {
       "pk": "6a740343-0d37-4e6b-ba56-0c60ac51477f"
       "table": "Speciality","object_id": "02548144-a27d-4c17-a90b-334ccf9e1892","related_object": "Information system"
   }
]

有没有一种方法不只是为了预期的对象表示而添加另一个字段,而是从value_rel中获取它?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...