gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 10:23:02 24 4
gpt4 key购买 nike

我将 Django 与 Django 休息框架一起使用。我想创建一个类工厂,它生成具有不同 Meta 类的序列化程序类。

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

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

最佳答案

您可以使用typeconstruct classes dynamically .

首先,构建您的 Meta 类:

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

然后使用这个 Meta 类来构造您的序列化程序类:

MySerializer = type('MarksSerializer', (serializers.ModelSerializer,), {'Meta': Meta})

这应该为您提供了使您的工厂正常运转所需的工具。

另一种选择是覆盖序列化程序的 __init__ 方法并在序列化程序初始化时修改字段。 DRF docs 中有一个这样的例子.

关于python - 如何编写一个类工厂来生成具有不同元类的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31141929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com