Вы можете сравнить и вычесть базовые 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
с auto_now , установленным на True .