Django - не получает AJAX данные отправлены - PullRequest
0 голосов
/ 24 марта 2020

Я звоню AJAX, чтобы отправить данные на сервер. В бэкэнде I print возвращаются данные, отправленные с внешнего интерфейса, однако None. Это неожиданно, поскольку вкладка сети (в chrome) подтверждает, что запрос AJAX был успешно выполнен, и к нему добавлены правильные данные. Это заставляет меня думать, что что-то не так с бэкэндом (Django).

HTML (регистрация. html):

<form id="signup_form">
      {% for field in form %}
          {{ field }}
          <br>
      {% endfor %}
      <button class="signup-btn btn btn-primary">Sign up</button>
</form>

<div id="testbox"></div>

Javascript / AJAX КОД :

    var delayTimer;

    $('#signup_form').keyup(function() {
        clearTimeout(delayTimer);
        delayTimer = setTimeout(function () {
            var usernameVal = $("#username_signup").val();
            // This returns expected result(value in input box)
            console.log(usernameVal);

            $.ajax({
                url: '/users/ajax/signup',
                data: {
                    'usernameVal': usernameVal,
                },
                dataType: 'json',
                success: function(data) {
                    $('#testbox').text(data['usernameVal']);
                }
            });
        }, 1000);
    });

views.py :

// Renders form and signup page
def signup(request):
    context ={}
    form = SignupForm()

    context['form'] = form
    return render(request, 'signup.html', context)

// Handles AJAX (This is the view AJAX calls (url = /users/ajax/signup))
def ajax_signup(request):
    form = SignupForm(request.GET)

    if form.is_valid():
        // This line below is printed successfully
        print("WORKS")
        // This line below returns None unexpectedly
        print(form.cleaned_data.get("usernameVal"))
        return JsonResponse({'usernameVal': form.cleaned_data.get("usernameVal")})
    else:
        print(form.errors)
        return JsonResponse({'hello': 'not working'})

Форма регистрации :

class SignupForm(forms.Form):
    username = forms.CharField(min_length=4, max_length=150, required=False, widget=forms.TextInput(attrs={'placeholder': 'Username (min 4 characters)', 'id': 'username_signup'}))
    email = forms.EmailField(min_length=3, required=False, widget=forms.EmailInput(attrs={'placeholder': 'Email', 'id': 'email_signup'}))
    password = forms.CharField(min_length=8, required=False, widget=forms.PasswordInput(attrs={'placeholder': 'Password (min 8 characters)', 'id': 'password_signup'}))
    confirm_password = forms.CharField(required=False, widget=forms.PasswordInput(attrs={'placeholder': 'Confirm Password', 'id': 'confirmpass_signup'}))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...