python - Hook 到 django 字段分配

标签 python django orm django-forms

当创建一个“vanilla”python 类时,如果想要在分配给一个属性时执行代码,通常的模式是创建一个“protected”(前导下划线)属性来保存数据,并使用 属性 来创建 getter 和 setter。

现在,如果我想用 Django 模型做到这一点,那将没有吸引力,尤其是因为我必须搜索属性的下划线版本。

在 Django 的字段分配上运行代码的推荐方法是什么?

没有信号表明我可以这样做;我能看到的唯一其他方法是使用可以注册额外的 getter/setter 处理程序的自定义 Field。

最佳答案

您根本无法在非自定义字段上执行此操作,因为没有实际的“字段”:它是一个简单的属性,背后没有任何类。

您需要定义自定义字段类并覆盖 to_python - 不要忘记将元类设置为 SubfieldBase .

关于python - Hook 到 django 字段分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9997665/

相关文章:

python - 将 NumPy 字符串数组映射为整数

python - 如何将数据帧字典条目拆分/分解为多行

django - 禁止创建没有 'fields' 属性或 'exclude' 属性的 ModelForm;表单 twocheckoutResponseForm 需要更新

sql - "last_login"列中的空值违反了非空约束

python - Pandas groupby 查找两个日期时间列之间的差异

python - Django 调用 https : [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

sql - 及时卡住django模型对象,像快照一样

java - 事务是否收集对数据库的查询或锁定数据库直到提交?

php - 学说 DQL JOIN

database - Django 数据库可扩展性