Pet*_*rth 7 django django-forms
我很惊讶这很难做到.但是我想出了这个,这似乎至少对我的简单案例起作用.有谁能推荐更好的方法?
def field_changed(self, fieldname):
"""Tests if the value of the field changed from the original data"""
orig_value = self.fields[fieldname].initial or getattr(self.instance, field, None)
orig_value = getattr(orig_value, 'pk', orig_value)
if type(orig_value) is bool:
# because None and False can be interchangeable
return bool(self.data.get(fieldname)) != bool(orig_value)
else:
return unicode(self.data.get(fieldname)) != unicode(orig_value)
Run Code Online (Sandbox Code Playgroud)
Air*_*irs 19
表单包含一个属性changed_data,其中包含值已更改的所有字段的列表.
尝试:
'fieldname' in myforminstance.changed_data
Run Code Online (Sandbox Code Playgroud)
看来你已经重新发明了has_changed方法.
| 归档时间: |
|
| 查看次数: |
9977 次 |
| 最近记录: |