当用户使用已存在的位置和名称对更新位置和名称对时,我试图显示内联错误消息。 但是我不知道如何定制它。 谢谢!
这是我的代码:
class LocationUpdateView(generic.UpdateView):
...
def form_valid(self, form):
form.instance.location = form.instance.cylinder.upper()
condition = {
'location': form.instance.location,
'name': form.instance.name,
}
item = Address.objects.filter(**condition)
if item.count() > 0:
# should I custom error message here?
return super().form_invalid(form)
return super().form_valid(form)
答案 0 :(得分:0)
请勿使用form_valid()
进行验证。您应该在表单类中这样做。
在表单类中,使用clean_FIELDNAME
来验证该字段。
#forms.py
class MyForm(ModelForm):
...
def clean_location(self):
location = self.cleaned_data['location']
self.instance.location = self.instance.cylinder.upper()
condition = {
'location': self.instance.location,
'name': self.instance.name,
}
item = Address.objects.filter(**condition)
if item.count() > 0:
raise ValidationError("Custom message")
return location