我想知道是否有可能在返回字段时覆盖字段的默认值。假设我有一个模型:
class ModelA(models.Model)
name = models.CharField(max_length=30)
有没有办法打电话
modela_instance.name
可以返回修改后的值,例如name +“foo”,但是默认情况下在模型本身中运行了附加foo的代码,所以我要做的就是调用name来获取附加值?
我应该详细说明一下,我实际上希望做的是在模型中包含一个方法:
def get_name(self):
return self.name + " foo"
或类似名称,并且只希望该get_name方法覆盖对“名称”字段的调用。
最佳答案
是的,您可以使用 properties 来执行此操作
class ModelA(models.Model)
_name = models.CharField(...)
def set_name(self, val):
self._name = "%s - foo" % val
def get_name(self):
return self._name
name = property(get_name, set_name)
关于Django模型: Override a field return value,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10382849/