django - 在字段下显示 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 方式来做到这一点
解决方案
您可以使用 Vuejs 的 vuevalidate 库进行前端字段验证。重量轻,文档非常好 https://vuelidate.js.org/
推荐阅读
- python - ezdxf 如何提取与块布局中的文本关联的标签
- sql-server - ADO.NET 查询未显示在 XEvents 中
- javascript - 如何防止 Google App Maker 应用超时
- powerbi - 需要一个平均总数,但有一个总和
- sockets - 网络不可用时未关闭绑定的 UDP 套接字
- c - 释放 BST 但仍然出现内存泄漏 C
- c# - Xamarin MasterDetail 页面更新到新页面
- perl - 在哈希中打印特定数量的键值对
- javascript - 链式和同时的 Promise
- python - 优化以在 python 列表中以更少的时间找到组合