[英]Why doesn't the following jquery code work?
我試圖查詢數據庫以查找用戶鍵入的用戶名是否已在數據庫中。 如果是,則它應該顯示消息“已經存在!” 但是沒有顯示該消息,而是在瀏覽器中出現以下錯誤:
我已經在數據庫中存儲了用戶名“ ahti”。
urls.py
from django.conf.urls import url
from .import views
urlpatterns = [
url(r'^$', views.index, name="Index"),
url(r'^validate/$',views.validateForm),
]
views.py
from django.shortcuts import render
from librarysystem.models import Users
from django.http import JsonResponse
def validateForm(request):
username = request.GET.get('username',None)
data = {
'is_taken' : Users.objects.filter(username__iexact=username)
}
return JsonResponse(data)
我的jQuery代碼:
function validateForm() {
var username = $('#username').val();
$.ajax({
url: '/librarysystem/validate/',
data: {
'username': username
},
dataType: 'json',
success: function(data) {
if (data.is_taken) {
alert("already taken!");
}
}
});
}
$(document).ready(function() {
$("#username").keyup(validateForm);
});
您應該使用錯誤顯示在其中的瀏覽器工具來查看來自服務器的回溯。 那將告訴您的是您不能將查詢集直接傳遞給JsonResponse; 您需要正確地序列化它。
但是,這似乎並不是您真正想要的。 您不在乎數據,僅在乎是否存在匹配項。 因此,您應該在該.exists()
上傳遞.exists()
的結果,這將為您提供一個布爾值:
data = {
'is_taken' : Users.objects.filter(username__iexact=username).exists()
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.