django模型检测用户是否正在尝试更改字段

时间:2013-06-03 09:11:16

标签: django

我正在保存模型,我需要检测用户是否正在尝试更改字段并显示错误:

 def save(self, *args, **kwargs):

     if self.status is being changed:
           error you cannot do that!

如何做到这一点是Django

1 个答案:

答案 0 :(得分:1)

查看django-dirtyfields包是否可以为您提供帮助,请参阅文档:

(ve)$ ./manage.py shell
>>> from testing_app.models import TestModel
>>> tm = TestModel(boolean=True,characters="testing")
>>> tm.save()
>>> tm.is_dirty()
False
>>> tm.get_dirty_fields()
{}
>>> tm.boolean = False
>>> tm.is_dirty()
True
>>> tm.get_dirty_fields()
{'boolean': True}
>>> tm.characters = "have changed"
>>> tm.is_dirty()
True
>>> tm.get_dirty_fields()
{'boolean': True, 'characters': 'testing'}
>>> tm.save()
>>> tm.is_dirty()
False
>>> tm.get_dirty_fields()
{}
>>>

另见:

希望有所帮助。