Как отобразить ошибку при отправке формы django с помощью jquery - PullRequest
0 голосов
/ 30 марта 2019

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

Вот мой код

profile.html

<form action="." enctype="multipart/form-data" method="POST" id="PassChan__form"> {% csrf_token %}
    <fieldset class="form-group">
        <legend class="border-bottom mb-4">Change Your paswsord</legend>
        <input type="hidden" value="Chan_Pass" name="hidden_data" />
        {{ c_form | crispy }}
    </fieldset>
    <div class="form-group">
        <h6 id="PassChan__show"></h6>
        <img src="{% static 'images/ajax-loader.gif' %}" style="Display:none;" id="PassChan__img">
        <button class="btn btn-outline-info" type="submit"  onclick="submit_form('PassChan__form', 'PassChan__submit', 'PassChan__img', 'PassChan__show', 'no')" id="PassChan__submit">Change Password</button>
    </div>
</form>

views.py

def profile(request):
    if request.method == 'POST':            
        response_data = {
            'SType': 'danger',
            'message': "An Error Occured, pls try again later"
        }
        c_form = PasswordChangeForm(user=request.user, data=request.POST)
        if c_form.is_valid():
            c_form.save()
            update_session_auth_hash(request, c_form.user)
            response_data = {
                'SType': 'success',
                'message': "Your Password was changed successfully"
            }

        return HttpResponse(json.dumps(response_data), content_type="application/json")
    context={
        'c_form':PasswordChangeForm(user=request.user)
    }
    return render(request, 'users/profile.html', context)

Пожалуйста, как я могу это сделать

1 Ответ

0 голосов
/ 30 марта 2019

Попробуйте что-то вроде (это потребует некоторых изменений, но должно подтолкнуть вас в правильном направлении):

 if c_form.is_valid():
        c_form.save()
        update_session_auth_hash(request, c_form.user)
        response_data = {
            'SType': 'success',
            'message': "Your Password was changed successfully"
        } 
else :
    response_data = {
         'SType' : 'error'
         'message' : c_form.errors
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...