为什么以下jquery代码不起作用?

时间:2017-01-02 13:41:07

标签: jquery python django

我正在尝试查询数据库以查找用户键入的用户名是否已在数据库中。如果是,则应显示消息“已存在!”但我没有显示消息,而是在浏览器中收到以下错误:

500 internal server error

我已将用户名“ahti”存储在我的数据库中。

urls.py

dbo.MyTable.Element1,
dbo.MyTable2.Element1
FROM MyTable LEFT OUTER JOIN MyTable2

views.py

from django.conf.urls import url
from .import views

urlpatterns = [
    url(r'^$', views.index, name="Index"),
    url(r'^validate/$',views.validateForm),
]

我的jquery代码:

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)

1 个答案:

答案 0 :(得分:1)

您应该使用错误显示的浏览器工具来查看来自服务器的回溯。那会告诉你的是你无法将查询集直接传递给JsonResponse;你需要正确地序列化它。

然而,这实际上似乎并不是你想要做的。你不关心数据,你只关心是否匹配。所以你应该在那个查询集上传递.exists()的结果,它会给你一个布尔值:

data = {
  'is_taken' : Users.objects.filter(username__iexact=username).exists()
}