Django rest framework 用一个方法序列化两个值
我有一个带有两个字段的序列化程序,如下所示:Django rest framework 用一个方法序列化两个值,django-rest-framework,django-serializer,Django Rest Framework,Django Serializer,我有一个带有两个字段的序列化程序,如下所示: first_installations_date = serializers.SerializerMethodField() sec_installations_date = serializers.SerializerMethodField() def get_first_installation_date(self, obj): return self._extract_date(obj, key="first") def get_f
first_installations_date = serializers.SerializerMethodField()
sec_installations_date = serializers.SerializerMethodField()
def get_first_installation_date(self, obj):
return self._extract_date(obj, key="first")
def get_first_installation_date(self, obj):
return self._extract_date(obj, key="sec")
这两种方法都是相同的,只是有点不同。
现在,我想知道,对于重构代码,是否有可能有两种方法:
first_installations_date = serializers.SerializerMethodField(source="get_installation_date", key="first")
sec_installations_date = serializers.SerializerMethodField(source="get_installation_date", key="sec")
def get_installation_date(self, obj, key):
return self._extract_date(obj, key)
不,除非您创建自定义字段,否则无法按您想要的方式进行 但是这个呢?如果你真的需要像那样“重构”
first_installations_date = serializers.SerializerMethodField()
sec_installations_date = serializers.SerializerMethodField()
def _get_installation_date(self, obj, key):
return self._extract_date(obj, key)
def get_first_installations_date(self, obj):
return self._get_installation_date(obj,key="first")
def get_sec_installations_date(self, obj):
return self._get_installation_date(obj, key="sec")