Метод очистки не вызывается в modelform
Как написано в заголовке, форма проходит валидацию, что бы ни случилось, я не понимаю, почему не вызываются мои методы clean и clean_. Использую формы уже довольно давно, но здесь я в недоумении, что я забыл.
Спасибо
simplified forms.py
class ProfileForm(forms.ModelForm):
class Meta:
model = Profile
fields = ["workcity", "post_address", "billing_address", "country", "phone"]
def clean(self):
#not called
cleaned_data = super().clean()
billing_address = cleaned_data.get('billing_address')
post_address= cleaned_data.get('post_adress')
if not billing_address == post_address:
do some raising validation error
def clean_workcity(self, *args, **kwargs):
#not called
workcity= self.cleaned_data.get("workcity")
if xxx:
do some raising validation error
return workcity
simplified views.py
def profileform(request):
if request.method =='POST':
form = ProfileForm(request.POST)
if form.is_valid():
form.instance.user = request.user
form.save()
messages.success(request, 'Profile created successfully')
return redirect('profile')
else :
handle errors
else:
form = ProfileForm()
return render(request, "CORE/home.html", {"form": form})
Думаю, вы ошиблись, так как метод clean вызывается автоматически при вызове метода сохранения модели и является методом экземпляра.
class ProfileForm(forms.ModelForm):
class Meta:
model = Profile
fields = ["workcity", "post_address", "billing_address", "country", "phone"]
def clean(self):
cleaned_data = super().clean()
billing_address = cleaned_data.get('billing_address')
post_address= cleaned_data.get('post_adress')
if not billing_address == post_address:
raise ValidationError({})