如何编写一个类工厂来生成具有不同元类的类

2024-10-03 17:27:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Django rest框架中使用Django。我想创建一个类工厂,用不同的Meta类生成序列化程序类。在

class MarksSerializer(serializers.ModelSerializer):
    class Meta:
        model = Marks
        fields = (
            'english',
            'maths',
            'science',
        )
        read_only_fields = (
            'maths',
        )

我想根据传递给工厂的参数改变只读字段和字段元组。请给我指一下正确的方向


Tags: django程序框架restfieldsmodel序列化工厂
1条回答
网友
1楼 · 发布于 2024-10-03 17:27:47

您可以使用typeconstruct classes dynamically。在

首先,构建你的元类:

Meta = type('Meta', (object,), {'model': Marks, 'fields': fields, 'read_only_fields': 'read_only_fields'})

然后使用此元类构造序列化程序类:

^{pr2}$

这将为你提供使你的工厂运转所需的工具。在

另一个选项是重写序列化程序的__init__方法,并在初始化序列化程序时修改字段。在DRF docs中有一个例子。在

相关问题 更多 >