我有一个模特:
class Person (models.Model):
name = models.CharField ()
birthday = models.DateField ()
age = models.IntegerField ()
Run Code Online (Sandbox Code Playgroud)
我想让age字段表现得像一个属性:
def get_age (self):
return (datetime.datetime.now() - self.birthday).days // 365
age = property (get_age)
Run Code Online (Sandbox Code Playgroud)
但同时我需要age成为一个真正的领域,所以我可以找到它Person._meta.fields,并为其分配属性:age.help_text = "Age of the person"等等.
显然我不能只是覆盖Person.save()计算和存储age在数据库中的方法,因为它以后不可避免地会出错(事实上,它根本不应该存储在数据库中).
实际上,我现在不需要设置setter,但是一个好的解决方案必须具有设置功能.
是否有可能在Django,或者可能有更多的pythonic和djangoic方法来解决我的问题?