【发布时间】:2015-01-11 20:07:27
【问题描述】:
我有一个包含许多字段的模型。仅当更改两个特定字段时,我才需要运行代码。我知道我可以修改模型的 save() 方法,但我不知道如何检查我的 ModelForm 中更改了哪些字段。
【问题讨论】:
标签: django django-models django-forms django-views django-queryset
我有一个包含许多字段的模型。仅当更改两个特定字段时,我才需要运行代码。我知道我可以修改模型的 save() 方法,但我不知道如何检查我的 ModelForm 中更改了哪些字段。
【问题讨论】:
标签: django django-models django-forms django-views django-queryset
你可以试试django-dirtyfields。
【讨论】:
Django-model-utils 有一个叫做FieldTracker 的东西,它就是这样做的。只需在您的模型中实例化它并告诉它跟踪您正在寻找的特定字段。然后您可以使用has_changed 方法测试给定字段自上次保存后是否发生了变化。
这个包还有一些其他很棒的实用程序,我真的建议您查看docs。
【讨论】:
很抱歉,因为我在 Django 方面不是很有经验,所以我不能给你任何代码 sn-p,但是当通过监听模型和监听变化的控制器类完成更改时,我会去获取信号。希望我能有所帮助。 祝你好运
【讨论】: