Пока написал так, не очень красиво, может есть лучше варианты, напишите:
class Field(object):
def __init__(self, label=None, value=None, flag=None):
self.label = label
self.value = value
self.flag = flag
@property
def value(self):
return self.__value
@value.setter
def value(self, value):
self.__value = value
@property
def flag(self):
return self.__flag
@flag.setter
def flag(self, flag):
self.__flag = flag
def to_representation(self):
return {
'label': self.label,
'value': self.value,
'flag': self.flag
}
class Test(object):
field1 = Field('Поле №1')
field2 = Field('Поле №2')
field3 = Field('Поле №3')
class Meta:
fields = ('field1', 'field2', 'field3') # Здесь можно по быстрому исключать поля
def __init__(self, data):
self.field1.value = data
@property
def data(self):
results = []
for field in self.Meta.fields:
field = getattr(self, field)
results.append(field.to_representation())
return results