首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django - simplejson反应

Django - simplejson反应
EN

Stack Overflow用户
提问于 2012-06-08 07:10:31
回答 2查看 508关注 0票数 1

我正在使用jQuery自动完成插件http://www.devbridge.com/projects/autocomplete/jquery/在我的web应用程序中提供搜索建议,在那里我想以json格式发送响应。

Django views.py,用于发送建议响应:

代码语言:javascript
复制
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')

姜戈models.py

代码语言:javascript
复制
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代码:

代码语言:javascript
复制
$("#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); },
    });
});

当我输入#加关键字文本框时,我会得到这个错误。

代码语言:javascript
复制
Request URL:http://127.0.0.1:8000/keywords_suggestions/?q=web&query=web
Request Method:GET
Status Code:500 INTERNAL SERVER ERROR

更新

代码语言:javascript
复制
ValueError at /keywords_suggestions/
The view information.views.keywords_suggestions didn't return an HttpResponse object.

更新-2

我对建议变量有疑问,也许全局建议会有问题。我做得对吗?

有人能引导我让它起作用吗?

更新-3

代码语言:javascript
复制
<input type="text" id="add-keywords" name="add-keywords" title="e.g. Web developer, Javascript, Musician, Jazz" />

如何在Django views.py中获得#add-关键字文本框的值。这能用q = request.POST.get('add-keywords')

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2012-06-08 07:19:59

判断request.is_ajax()返回False

票数 1
EN

Stack Overflow用户

发布于 2012-06-08 08:09:48

条件分支

代码语言:javascript
复制
try:
    g = KeywordsModel.objects.filter(keyword__startswith=q).order_by('count')
except KeywordsModel.DoesNotExist:
    return HttpResponse("")
else:
    ...

也可能以ValueError的形式失败,例如,request.POST.get('q')结果None

另外,试试'/keywords_suggestions/',注意后缀斜杠,而不是serviceUrl:'/keywords_suggestions',行中的'/keywords_suggestions'

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10944482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档