【问题标题】:Display the error_messages under the fields在字段下显示 error_messages
【发布时间】:2021-02-03 07:55:23
【问题描述】:

我将这个包用于我的表单 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 方式来做到这一点

【问题讨论】:

    标签: django vue.js django-rest-framework


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-17
      • 1970-01-01
      • 2014-12-12
      • 2020-10-31
      相关资源
      最近更新 更多