我正在尝试查询数据库以查找用户键入的用户名是否已在数据库中。如果是,则应显示消息“已存在!”但我没有显示消息,而是在浏览器中收到以下错误:
我已将用户名“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)
答案 0 :(得分:1)
您应该使用错误显示的浏览器工具来查看来自服务器的回溯。那会告诉你的是你无法将查询集直接传递给JsonResponse;你需要正确地序列化它。
然而,这实际上似乎并不是你想要做的。你不关心数据,你只关心是否匹配。所以你应该在那个查询集上传递.exists()
的结果,它会给你一个布尔值:
data = {
'is_taken' : Users.objects.filter(username__iexact=username).exists()
}