我正在为我的网页创建一个自动完成的搜索,并尝试使用ajax调用从数据库中获取用户名。
我的AJAX调用运行正常,并转到了指定的URL。
我已经尝试过使用JSON编码器,但这也没有用。
我对DJANGO有点陌生。请帮助
我的 views.py
def autocomplete(request):
if request.is_ajax():
q = request.GET.get('search', '').capitalize()
search_qs = Profile.objects.filter(user__username__startswith=q)
results = []
print (q)
for r in search_qs:
results.append(r.user)
data= json.dumps(list(results), cls=DjangoJSONEncoder)
else:
data = 'fail'
mimetype = 'application/json'
return HttpResponse(data, mimetype)
我的 models.py
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
image = models.ImageField(default='default.jpg', upload_to='profile_pics')
def __str__(self):
return f'{self.user.username} Profile'
错误,我得到了
TypeError: Object of type User is not JSON serializable
[] "GET /ajax_calls/search/?**term=he** HTTP/1.1" 500 15860
答案 0 :(得分:1)
我不知道您为什么要通过$sql = "
INSERT INTO [dbo].[akcja]
([ak_akt_id]
,[ak_sp_id]
,[ak_kolejnosc]
,[ak_interwal]
,[ak_zakonczono]
,[ak_sc_id]
,[ak_pr_id])
VALUES
(
$($item.akt_id)
,$($item.sp_id)
,0
,0
,$($item.data_dodania)
,NULL
,NULL)
select SCOPE_IDENTITY() as [InsertedId]
"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; User Id=$login; Password=$password; Integrated Security = false";
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $sql
$SqlCmd.Connection = $sqlConnection
$SqlConnection.Open()
$InsertedId = $SqlCmd.ExecuteScalar()
$SqlConnection.Close()
查询,而在这里您可以直接通过Profile
查询。我认为正确的实现应该是这样的:
User
Documentation可以在这里找到。