Предоставление окна сообщения об ошибке при отправке формы : Django

Я следовал учебнику и после его завершения столкнулся с ошибкой, которая должна появляться только в том случае, если форма, которую я отправил, недействительна. Я использую recaptcha и несколько других apis

вот несколько моих функций

result = "Ошибка" сообщение = "Произошла ошибка, пожалуйста, попробуйте еще раз"

class AccountView(TemplateView): ''' Generic FormView с нашим миксином для отображения страницы учетной записи пользователя ''' template_name = "users/account.html"

@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
    return super().dispatch(*args, **kwargs)

def is_ajax(request): return request.META.get('HTTP_X_REQUESTED_WITH') == 'XMLHttpRequest'

def profile_view(request): ''' представление функции, позволяющее пользователям обновлять свой профиль ''' user = request.user up = user.userprofile

form = UserProfileForm(instance = up) 

if request.is_ajax():
    form = UserProfileForm(data = request.POST, instance = up)
    if form.is_valid():
        obj = form.save()
        obj.has_profile = True
        obj.save()
        result = "Success"
        message = "Your profile has been updated"
    else:
        message = FormErrors(form)
    data = {'result': result, 'message': message}
    return JsonResponse(data)

else:

    context = {'form': form}
    context['google_api_key'] = settings.GOOGLE_API_KEY
    context['base_country'] = settings.BASE_COUNTRY

    return render(request, 'users/profile.html', context)

class SignUpView(AjaxFormMixin, FormView): ''' Общий FormView с нашим миксином для регистрации пользователей с безопасностью reCAPTURE '''

template_name = "C:/Users/adity\OneDrive/Documents/Coding/python/py_tutorial/djangotutorial/googleapi project/googapiproj/templates/users/sign_up.html"
form_class = UserForm
success_url = "/"

#reCAPTURE key required in context
def is_ajax(request):
    return request.META.get('HTTP_X_REQUESTED_WITH') == 'XMLHttpRequest'

def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    context["recaptcha_site_key"] = settings.RECAPTCHA_PUBLIC_KEY
    return context


#over write the mixin logic to get, check and save reCAPTURE score
def form_valid(self, form):
    response = super(AjaxFormMixin, self).form_valid(form)  
    if request.is_ajax():
        token = form.cleaned_data.get('token')
        captcha = reCAPTCHAValidation(token)
        if captcha["success"]:
            obj = form.save()
            obj.email = obj.username
            obj.save()
            up = obj.userprofile
            up.captcha_score = float(captcha["score"])
            up.save()
            
            login(request, obj, backend='django.contrib.auth.backends.ModelBackend')

            #change result & message on success
            result = "Success"
            message = "Thank you for signing up"

            
        data = {'result': result, 'message': message}
        return JsonResponse(data)

    return response

class SignInView(AjaxFormMixin, FormView): ''' Общий FormView с нашим миксином для регистрации пользователя '''

template_name = "C:/Users/adity\OneDrive/Documents/Coding/python/py_tutorial/djangotutorial/googleapi project/googapiproj/templates/users/sign_in.html"
form_class = AuthForm
success_url = "/"

def is_ajax(request):
    return request.META.get('HTTP_X_REQUESTED_WITH') == 'XMLHttpRequest'

def form_valid(self, form):
    response = super(AjaxFormMixin, self).form_valid(form)  
    if request.is_ajax():
        username = form.cleaned_data.get('username')
        password = form.cleaned_data.get('password')
        #attempt to authenticate user
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user, backend='django.contrib.auth.backends.ModelBackend')
            result = "Success"
            message = 'You are now logged in'
        else:
            message = FormErrors(form)
        data = {'result': result, 'message': message}
        return JsonResponse(data)
    return response

def sign_out(request): ''' Базовое представление для выхода пользователя из системы ''' logout(request) return redirect(reverse('users:sign-in'))

Вернуться на верх