重写SerializerMethodField的 django-rest-framework
class CustomSerializersMethodField(serializers.SerializerMethodField):
def __init__(self, title, method_name=None, **kwargs):
self.title = title
super(serializers.SerializerMethodField, self).__init__(method_name=None, **kwargs)
并得到一个错误
__init__() got an unexpected keyword argument 'method_name'
是否与码头的备注有关?
method_name 参数引用的序列化程序方法应该接受单个参数(除了 self 之外)
我做错了什么?以及使用什么对象来创建带有必要参数的自定义字段?
我现在没有安装 Django,无法验证我的猜测,但我怀疑您仍然需要调用 super,不是从 SerializerMethodField,而是从您正在创建的类(即 CustomSerializersMethodField)。
至少那是他们在重新定义 init 时通常做的事情。