【发布时间】:2020-02-16 20:21:16
【问题描述】:
我有一个名为 Layer 的模型,它与 Geometry 具有一对一的关系,而 Geometry 具有以下设计:
class Geometry(models.Model):
pass
class Circle(Geometry):
radius = models.CharField(max_length=255)
class Rectangle(Geometry):
height = models.CharField(max_length=255)
width = models.CharField(max_length=255)
我应该如何定义层序列化器以使层 json 包含一个名为“几何”的属性,而不管它与哪个子模型有关系?我不希望该属性既不是圆形也不是矩形。
提前致谢!
【问题讨论】:
-
您的序列化程序中需要哪个字段?如果您的需求包含子模型,则必须为每个模型定义不同的序列化程序。或者您可以使用 SerializerMethodField 自定义任何字段。如果我正确理解了您的需求,我想为您提供帮助。
-
我希望我的层序列化程序包含一个名为 Geometry(父模型)的字段。例如: {"geometry": {radius: 100}} 或 {"geometry": {"height": 50, "width": 50}} 而不是 {"circle": {radius: 100}} 或 {"矩形”:{“高度”:50,“宽度”:50}}
标签: django django-models django-rest-framework