Django Wagtail未正确显示ValidationError

Django Wagtail未正确显示ValidationError,django,validation,wagtail,Django,Validation,Wagtail,我对wagtail.core.models.Page进行了异或验证 def save(self, *args, **kwargs): if self.video_playlist is not None and self.gallery is not None: raise ValidationError(_("Only gallery or only video playlist must be filled")) elif self.video_playlis

我对wagtail.core.models.Page进行了异或验证

def save(self, *args, **kwargs):
    if self.video_playlist is not None and self.gallery is not None:
        raise ValidationError(_("Only gallery or only video playlist must be filled"))
    elif self.video_playlist is None and self.gallery is None:
        raise ValidationError(_("Only gallery or only video playlist must be filled"))
    super(OkoPage, self).save(*args, **kwargs)
但wagtail返回400错误,而不是红色高亮显示。
如何正确执行此验证?

您应该在模型上以
clean
方法执行此验证,而不是在
save
中执行。这样,Django的表单处理逻辑将捕获
ValidationError
,并将其转换为表单上的错误消息


save
方法只有在表单处理完成后才被调用,因此此时抛出一个
ValidationError
对于它来说已经太晚了,无法很好地处理它。

您可能希望每个错误消息都是唯一的,这样您就可以知道正在查看的是哪一条。这不是问题所在。我需要像django的管理员一样在wagtail的页面表单中处理
ValidationError