【发布时间】: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