【问题标题】:Python-Django Response the text of errorPython-Django 响应错误文本
【发布时间】:2016-09-19 13:52:54
【问题描述】:

如何使用 Ajax 将验证错误文本响应到我的模板?

def create_user(request):
    if request.method == 'POST':
        is_super = True
        if request.POST.get('is_super') in 'false':
            is_super = False
        if request.POST.get('password') == request.POST.get('confirm'):
            user = User.objects.create(first_name=request.POST.get('first_name'),
                                       last_name=request.POST.get('second_name'),
                                       username=request.POST.get('username'),
                                       is_superuser=is_super,
                                       date_joined=datetime.now())
            user.set_password(request.POST.get('password'))
            user.save()
        else:
            raise forms.ValidationError("Passwords doesn't match")
        return HttpResponse('')

【问题讨论】:

  • 恕我直言,首先要做的是学习如何在视图中正确使用表单和表单验证,以及如何在没有 ajax 的情况下使所有这些工作。一旦您使规范(无 ajax)案例工作,就该想知道如何使其也与 ajax 一起工作。
  • 您不应在视图中引发验证错误。您在表单中提出它们,视图将带有 errors 属性的表单发送到模板。

标签: python ajax django


【解决方案1】:
def create_user(request):
    if request.method == 'POST':
        is_super = True
        if request.POST.get('is_super') in 'false':
            is_super = False
        if request.POST.get('password') == request.POST.get('confirm'):
            user = User.objects.create(first_name=request.POST.get('first_name'),
                                       last_name=request.POST.get('second_name'),
                                       username=request.POST.get('username'),
                                       is_superuser=is_super,
                                       date_joined=datetime.now())
            user.set_password(request.POST.get('password'))
            user.save()

        else:
            return HttpResponse(json.dumps({'error': True, 'message': 'Password and confirm password doesnt match'}))`            
        return HttpResponse('')

您需要使用 Jquery 在 HTML 中显示上述错误消息“密码和确认密码不匹配”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    • 2018-01-23
    • 1970-01-01
    • 2020-04-11
    • 2012-04-05
    • 2020-09-05
    相关资源
    最近更新 更多