Django如何自定义内联错误消息

时间:2019-04-22 04:26:03

标签: django

当用户使用已存在的位置和名称对更新位置和名称对时,我试图显示内联错误消息。 但是我不知道如何定制它。 谢谢!

这是我的代码:

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)

1 个答案:

答案 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

docs