我使用jQuery自動完成插件http://www.devbridge.com/projects/autocomplete/jquery/在我的web應用程序中提供搜索建議,我希望以json格式發送響應。Django - simplejson響應
Django的views.py發送的建議迴應:
def keywords_suggestions(request):
if request.is_ajax():
suggestions = []
q = request.POST.get('q')
try:
g = KeywordsModel.objects.filter(keyword__startswith=q).order_by('count')
except KeywordsModel.DoesNotExist:
return HttpResponse("")
else:
for i in range(0,len(g)):
global suggestions
suggestions.append(g[i].keyword)
to_json = {
"query": q,
"suggestions": suggestions
}
return HttpResponse(simplejson.dumps(to_json), mimetype='application/json')
Django的models.py:
class KeywordsModel(models.Model):
keyword = models.CharField(max_length=40, blank=False)
count = models.IntegerField(max_length=20)
def __unicode__(self):
return self.keyword
jQuery代碼:
$("#add-keywords").keyup(function() {
$('#add-keywords').autocomplete({
serviceUrl:'/keywords_suggestions',
minChars:3,
maxHeight:220,
width:280,
zIndex: 9999,
params: { q: $('#add-keywords').val() },
onSelect: function(value, data){ $('#add-keywords').val(value); },
});
});
我得到這個當我在#add-keywords文本框中輸入時出錯。
Request URL:http://127.0.0.1:8000/keywords_suggestions/?q=web&query=web
Request Method:GET
Status Code:500 INTERNAL SERVER ERROR
UPDATE
ValueError at /keywords_suggestions/
The view information.views.keywords_suggestions didn't return an HttpResponse object.
UPDATE-2
我有在建議疑問變量,也許全球的建議將有問題。我做對了嗎?
任何人都可以指導我使它工作嗎?
UPDATE-3
<input type="text" id="add-keywords" name="add-keywords" title="e.g. Web developer, Javascript, Musician, Jazz" />
如何獲得#添加的關鍵字文本框的Django的views.py值。這是否工作q = request.POST.get('add-keywords')
?
謝謝!
導航到http://127.0.0.1:8000/keywords_suggestions/?q=web&query=web,您應該會看到錯誤消息。 – alexn
打開firebug - > console - > ctrl F5 - >控制檯錯誤 - >右鍵單擊並在新標籤頁中打開以查看錯誤 –
請檢查更新後的問題。謝謝! – rnk