Django формы: ошибка не отображается в json - PullRequest
0 голосов
/ 19 января 2020

Я пытаюсь настроить свой забытый пароль в Django с помощью встроенных валидаторов, но я не получаю ответа, если воспроизводит ошибки, но он должен показать ошибки других классов, как я могу это исправить?

forms.py

class RestorePasswordForm(SetPasswordForm):
    new_password1 = forms.CharField(widget=forms.PasswordInput(attrs={'class':'form-control','placeholder':'Password','required': True}))
    new_password2 = forms.CharField(widget=forms.PasswordInput(attrs={'class':'form-control','placeholder':'Password','required': True}))

просмотров

  def post(self, request,token):
    form = RestorePasswordForm(request.POST)
    if form.is_valid():
      obj = token(token)
      if obj:
        this_user = User.objects.get(id=obj.email_id)
        if not this_user:
          return False
        this_user.set_password(request.POST.get('new_password2'))
        this_user.save()
        obj.token = None
        obj.save()
    return JsonResponse({"message":form.errors})

отображение ответа браузера {"message": {}}

1 Ответ

0 голосов
/ 19 января 2020

Когда вы проверяете форму, вы всегда должны проверять, публикует ли она, а затем только обрабатывать ее. Также «forms.errors» даст вам HTML строку, но вы уже знаете об этом.
Причина, по которой вы получаете пустую причину, заключается в том, что в форме ничего не публикуется.

def post(self, request,token):
    if request.method=="POST":
        form = RestorePasswordForm(request.POST)
        if form.is_valid():
        obj = token(token)
        if obj:
            this_user = User.objects.get(id=obj.email_id)
            if not this_user:
              return False
            this_user.set_password(request.POST.get('new_password2'))
            this_user.save()
            obj.token = None
            obj.save()
      else:
           print("you didn't post anything to form")
    return JsonResponse({"message":form.errors})
...