当创建一个“vanilla”python 类时,如果想要在分配给一个属性时执行代码,通常的模式是创建一个“protected”(前导下划线)属性来保存数据,并使用 属性
来创建 getter 和 setter。
现在,如果我想用 Django 模型做到这一点,那将没有吸引力,尤其是因为我必须搜索属性的下划线版本。
在 Django 的字段分配上运行代码的推荐方法是什么?
没有信号表明我可以这样做;我能看到的唯一其他方法是使用可以注册额外的 getter/setter 处理程序的自定义 Field。
最佳答案
您根本无法在非自定义字段上执行此操作,因为没有实际的“字段”:它是一个简单的属性,背后没有任何类。
您需要定义自定义字段类并覆盖 to_python
- 不要忘记将元类设置为 SubfieldBase
.
关于python - Hook 到 django 字段分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9997665/