首页 > 解决方案 > 在字段下显示 error_messages

问题描述

我将此包用于我的表单https://github.com/KuwaitNET/djvue但无论如何这就像一个一般性问题,我编写了以下方法来验证我的电话号码字段

    def validate_phone_number(self, value):
    phone_number = to_python(value)
    if phone_number and not phone_number.is_valid():
        self.fields["phone_number"].error_messages.update({"ph":"Wrong"})
        raise ValidationError(_(u'The phone number entered is not valid.'))
    return value

它工作得很好,因为在我的模型中:

def serve(self, request, *args, **kwargs):
    if request.method == "POST":
        data = json.loads(request.body)
        serializer = ContactUsSerializer(data=data)
        if serializer.is_valid():
            ticket_number = serializer.save()
            return JsonResponse({"ticket_number": ticket_number})
        else:
            return JsonResponse(serializer.errors)
    ctx = self.get_context(request, *args, **kwargs)
    ctx["serializer"] = ContactUsSerializer()
    request.is_preview = getattr(request, "is_preview", False)
    return TemplateResponse(
        request, self.get_template(request, *args, **kwargs), ctx
    )

实际上,当我输入一个无效的电话号码时,我收到了一个带有错误的 JsonResponse:

0: "The phone number entered is not valid."

这很好,但是如何在 phone_number 字段下方显示更新的错误消息?看起来尽管错误正在更新,但显示没有,我应该使用 Vue 还是其他东西来实现这一点?知道我正在使用的包是这样做的:

<span class="help-block text-danger" v-for="error in errors" :key="error">{( error )}</span>

但我不确定他们如何以及在何处呈现错误,所以我可能想要一种纯粹的 Django 方式来做到这一点

标签: djangovue.jsdjango-rest-framework

解决方案


您可以使用 Vuejs 的 vuevalidate 库进行前端字段验证。重量轻,文档非常好 https://vuelidate.js.org/


推荐阅读