Django получает значение поля в __init__ формы
Мне нужно иметь значение поля перед выполнением обновления. forms.py
class Form_Rol(forms.ModelForm):
class Model:
model = My_Model
fields = "__all__"
def __init__(self, *args, **kwargs):
'''I want to do this'''
value_coming_from_update = self.fields['name']
print(value_coming_from_update)
Output.... <django.forms.fields.CharField object at 0x0000026649558DC0> Как вывести фактическое значение в init?
Я не могу использовать self.cleaned_data.get('name') в init. Выдает ошибку (AttributeError: 'Form_Rol' object has no attribute 'cleaned_data')
cleaned_data
не существует, пока форма не будет инстанцирована с данными (a.k.a. "привязана") и is_valid()
не вернет True. Поэтому принципиально невозможно получить к ней доступ в __init__
время.
Можете ли вы объяснить, чего вы пытаетесь достичь?
Возможно, вы захотите выполнить дополнительную проверку объекта ModelForm перед его сохранением. Сделать это можно следующим образом
if form.is_valid():
instance = form.save( commit=False)
# further checking of instance...
if instance.ok_to_save():
instance.save()