我的模型如下:
class Actor(Model):
VALUE_CHOICES = (
('int', 'Integer'),
('str', 'String'),
('float', 'Float'),
('bool', 'Boolean')
)
type = models.CharField(max_length=5, choices=VALUE_CHOICES, default='str')
_value = models.CharField(max_length=100, default='', db_column='value')
我想做的是基于“类型”字段中选择的数据,“ _值”字段将检查输入并将其转换为所需的类型。有人告诉我使用django @property可以做到这一点,但是我不确定它如何协同工作。
到目前为止,我已经尝试过此测试,但无济于事:
@property
def value(self):
return self._value
@value.setter
def value(self, val):
print('This is self ', self, ' and val is ', val, ' and this is self ', self.request)
self._value = val
如果有人有想法或可以将我引向正确的方向,我将不胜感激。
答案 0 :(得分:1)
我不确定该测试应该演示什么。如果要基于另一个字段的值转换值,请在getter中进行;您不需要二传手。
@property
def value(self):
conversions = {'int': int, 'str': str, 'bool': bool, 'float': float}
return conversions[self.type](self._value)