我想在更新日期后的6个月内禁用django字段。我已将update_time保存到表中。
updated_time = a.update_time
disabled_time = a.update_time + timedelta(180)
我想要更新的字段:
self.fields['first_name'].widget.attrs['readonly'] = True
如何为self.fields['first_name'].widget.attrs['readonly'] = True
停用disabled_time
?
提前致谢
答案 0 :(得分:1)
您可以比较和减去基本datetime
个对象,并在表单初始化时进行一些检查:
from datetime import timedelta, datetime
...
class FooForm(ModelForm):
def __init__(self, *args, **kwargs):
super(FooForm, self).__init__(*args, **kwargs)
# check if we already have a saved object and it's not older than 180 days
if self.instance.pk and
(datetime.now() - self.instance.update_time) < timedelta(180):
self.fields['first_name'].widget.attrs['readonly'] = True
class Meta:
model = Foo
(未经过实际测试但应该按原样运行。)
另请注意,将update_time
设置为 True 时{{1}}通常很方便。