有条件地选择串行器

周末

我有三个Django模型。

class Asset(models.Model):
  name = models.CharField(max_length=255)


class Place(Asset):
  location = PointField()


class Zone(Asset):
  location = PolygonField()

我想对“位置”和“区域”使用相同的端点。是否可以为每个请求决定将使用哪个序列化程序,例如,我可以轻松地检查所请求的资产是场所还是区域?

我只对处理单个实例感兴趣,因此无需处理ListView等。

拉胡尔·古普塔(Rahul Gupta)

您可以在视图中覆盖该get_serializer_class方法,并在其中添加用于确定正确的序列化器的逻辑。

根据DRF文档:

get_serializer_class(self)

返回应该用于序列化程序的类。默认为返回serializer_class属性。

可以重写以提供动态行为,例如使用不同的序列化程序进行读写操作,或为不同类型的用户提供不同的序列化程序。

代码:

class MyView(..):
    ...

    def get_serializer_class(self):
        if asset == place: # here add the logic to decide the asset type
             return PlaceSerializer 
        return ZoneSerializer 

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有条件地选择模型

来自分类Dev

根据LastUpdatedStatusReport日期有条件地从WSUS服务器中选择字段

来自分类Dev

根据其版本有条件地选择编译器

来自分类Dev

有条件地显示关于UITabBar选择的视图控制器

来自分类Dev

有条件地以角度更改 owl-date-time 选择器的日期格式

来自分类Dev

SQL语句有条件地选择相关记录

来自分类Dev

有条件地选择熊猫DataFrame中的数据

来自分类Dev

有条件地选择字段值

来自分类Dev

有条件地选择和设置列值

来自分类Dev

有条件地在R中选择多个列

来自分类Dev

有条件地选择要继承的类

来自分类Dev

如何有条件地选择变量?

来自分类Dev

有条件地选择熊猫DataFrame中的数据

来自分类Dev

根据字段有条件地选择整个记录

来自分类Dev

有条件地在Angular中填充选择列表

来自分类Dev

如何有条件地从SQL Server选择记录

来自分类Dev

有条件地从列决策中选择数据

来自分类Dev

如何有条件地选择要显示的行

来自分类Dev

如何有条件地调用spring验证器

来自分类Dev

有条件地从编译器隐藏代码

来自分类Dev

有条件地显示服务器控件

来自分类Dev

带有条件的粗糙嵌套选择器

来自分类Dev

有条件地禁用jButton

来自分类Dev

有条件地锁定资源

来自分类Dev

有条件地验证收集

来自分类Dev

有条件地导入模块

来自分类Dev

有条件地执行资源

来自分类Dev

有条件地比较值

来自分类Dev

有条件地建立清单