내가보기에 코드를 가지고 : 그것은 JQuery와에서 요청하고 인쇄 소요JQuery와 유효성 검사기와 장고
def check_username(request):
if HttpRequest.is_ajax and request.method == 'GET':
username = request.GET['username']
if User.objects.filter(username=username).exists():
print('duplicate') # have this for checking in console
return HttpResponse(False)
else:
return HttpResponse(True)
else:
return HttpResponse("Zero")
를 ('중복') 나 중복이 인쇄하는 경우에만, 바로 작동합니다. 내 JS 코드 :
$("#formregister").validate({
rules: {
username: {
required: true,
remote: "http://127.0.0.1:8000/accounts/checkname"
}
},
messages: {
username: {
required: 'you MUST have username',
remote: 'gogogog'
}
}
});
});
"당신은 이름을 가져야한다"는 제대로 작동하지만 원격 메시지를받을 수 없습니다. 내가 도대체 뭘 잘못하고있는 겁니까? 감사!
편집 :
내가 check_username하기 위해 원격 incury를 사용합니다.
[30/Dec/2017 08:29:21] "GET /accounts/checkname?username=wefefwef HTTP/1.1" 301 0
[30/Dec/2017 08:29:21] "GET /accounts/checkname/?username=wefefwef HTTP/1.1" 200 4
내가 DmitryAdmin을 (이미 사용)하려고하면 내가 얻을 :
쇼, 그 백엔드 GET 요청을 중복duplicate
[30/Dec/2017 08:32:14] "GET /accounts/checkname/?username=DmitryAdmin HTTP/1.1" 200 5
,하지만 뭔가가 내가 "wefefwef"이름을하려고 할 때 내 단말기에있다 대답이 잘못되었습니다.
HTML :
<div class="login-page">
<div class="form">
<form class="register-form" method="POST" action="{% url 'signup' %}" id = "formregister">
{% csrf_token %}
<input class="input" type="text"
name="username" placeholder="имя пользователя" maxlength="150"/>
<input class="input" type="text"
name="email" placeholder="email"/>
<input class="input" type="password" id="password1"
name="password1" placeholder="пароль"/>
<input class="input" type="password" id="password2"
name="password2" placeholder="повторите пароль"/>
{% if form.username.errors %}
<p class="error-message" >Имя пользователя занято или использованы недопустимые символы</p>
{% endif %}
{% if form.email.errors %}
<p class="error-message" >Некорректный или зарегестрированный адрес электронной почты</p>
{% endif %}
{% if form.password2.errors %}
<p class="error-message" >Пароль не совпадает либо слишком легкий</p>
{% endif %}
<button type="submit">создать</button>
<p class="message">Уже зарегистрированны? <a href="#" id ="alogin-reg" for="login-form">Войти.</a></p>
<p class="message">Забыли пароль? <a href="#" id ="arestore-reg" for="reset-form">Восстановить.</a></p>
</form>
수정 됨 # 2 :
[30/Dec/2017 09:28:05] "GET /accounts/checkname?username=wepfwe HTTP/1.1" 301 0
[30/Dec/2017 09:28:05] "GET /accounts/checkname/?username=wepfwe HTTP/1.1" 200 4
[30/Dec/2017 09:28:11] "GET /accounts/checkname/?username=Dmitry HTTP/1.1" 200 4
[30/Dec/2017 09:28:12] "GET /accounts/checkname/?username=DmitryA HTTP/1.1" 200 4
[30/Dec/2017 09:28:12] "GET /accounts/checkname/?username=DmitryAd HTTP/1.1" 200 4
[30/Dec/2017 09:28:12] "GET /accounts/checkname/?username=DmitryAdm HTTP/1.1" 200 4
[30/Dec/2017 09:28:12] "GET /accounts/checkname/?username=DmitryAdmi HTTP/1.1" 200 4
duplicate
[30/Dec/2017 09:28:13] "GET /accounts/checkname/?username=DmitryAdmin HTTP/1.1" 200 5
장고보기에 참/거짓 보내기 문자열 메시지의 insted 몇 번이고 당신이 찾고있는 무슨을 한정된 아이디어가있다. 제발 바꿔주세요. – DmitrySemenov
등록하는 동안 사용자 이름을 확인해야합니다. 사용자 이름이 존재하면 JQuery Validator를 사용하여 'gogogog'메시지를 렌더링해야합니다. –