Я пытаюсь использовать FieldMixin
из этого ответа в моем проекте, но у меня возникают проблемы с его прохождением mypy
проверок. Текущий код:
class DynamicFieldsMixin(Serializer):
context: Dict[str, Any]
def get_field_names(
self, declared_fields: OrderedDict, info: FieldInfo
) -> Set[str]:
field_names: Set[str] = self.context.get(
"fields",
super().get_field_names(declared_fields, info)
)
return field_names
Наследование от rest_framework.serializers.Serializer
кажется странным, и мне интересно, есть ли способ избежать этого, поскольку он предназначен для смешивания с реальными Serializer
классами. Просто удаление суперкласса приводит к этой ошибке:
ошибка: "get_field_names" не определено в суперклассе
mypy
конфигурация:
[mypy]
check_untyped_defs = true
disallow_untyped_defs = true
ignore_missing_imports = true
no_implicit_optional = true
warn_redundant_casts = true
warn_return_any = true
warn_unused_ignores = true