gpt4 book ai didi

Django 模型字段 getter/setter

转载 作者:行者123 更新时间:2023-12-03 11:50:18 24 4
gpt4 key购买 nike

django 模型的字段是否有类似 getter 和 setter 的东西?

例如,我有一个文本字段,我需要在保存之前对其进行字符串替换(在管理面板中,对于插入和更新操作),并在每次读取时进行另一个不同的替换。那些字符串替换是动态的,需要在保存和读取时完成。

由于我使用的是 python 2.5,我不能使用 python 2.6 getter/setter。

有什么帮助吗?

最佳答案

您还可以覆盖 setattr 和 getattr。例如,假设你想将一个字段标记为脏,你可能有这样的事情:

class MyModel:
_name_dirty = False

name = models.TextField()

def __setattr__(self, attrname, val):
super(MyModel, self).__setattr__(attrname, val)

self._name_dirty = (attrname == 'name')


def __getattr__(self, attrname):
if attrname == 'name' and self._name_dirty:
raise('You should get a clean copy or save this object.')

return super(MyModel, self).__getattr__(attrname)

关于Django 模型字段 getter/setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2898711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com