У меня есть сериализатор Django Rest Framework, который содержит много полей с плавающей точкой, например,
class MySerializer(serializers.Serializer):
unitID = serializers.CharField(required=True, allow_blank=False, max_length=50)
timestamp = serializers.DateTimeField(required=True)
VonDC = serializers.FloatField(required=False)
VonAC = serializers.FloatField(required=False)
VoffDC = serializers.FloatField(required=False)
VonDC2 = serializers.FloatField(required=False)
etc...
Я хотел бы иметь возможность создавать эти поля из списка имен полей, например,
the_fields = ['VonDC', 'VonAC', 'VoffDC', 'VonDC2', etc...]
class MySerializer(serializers.Serializer):
unitID = serializers.CharField(required=True, allow_blank=False, max_length=50)
timestamp = serializers.DateTimeField(required=True)
for f in the_fields:
<something>[f] = serializers.FloatField(required=False)
or
<some_function>(<something>, f, serializers.FloatField(required=False) )
Я не смог найти, что "что-то" или "some_function" в вышеприведенном было бы.
Возможно ли это сделать?Есть ли в Python способ добавить атрибуты в класс и взять имя из переменной?Или есть конкретная поддержка для этого в Django Rest Framework?
Я хочу сделать это частично, потому что это более кратко, но главным образом потому, что у меня уже есть список имен полей, которые я хочу предоставить, и я хочу использоватьэто, а не повторять все имена.
(Список полей по существу фиксирован, его изменение может повлиять на всю систему. Время от времени он может изменяться, но он, безусловно, не изменится во время работы программы)