Django jquery-ui自动完成数据库

时间:2014-08-28 15:13:02

标签: javascript jquery django jquery-ui autocomplete

我想在我的模型中使用jquery-ui自动完成插件。 我有这个模型:

class Baslik(models.Model):
    user = models.ForeignKey(User, null=True, blank=True)
    title = models.CharField(max_length=50)
    timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
    updated = models.DateTimeField(auto_now_add=False, auto_now=True)
    active = models.BooleanField(default=True)

为了完成这项工作,我使用了以下代码: 输入:

<input id="n" type="text" name="n"/>

JS:

<script>
$(document).ready(function(){
     $( "input#n" ).autocomplete({
                            source: "{% url "autoco" %}",
                            minLength: 2
        });
});
</script>

视图:

def autoco(request):
     term = request.GET.get('term')
     bslk = Baslik.objects.filter(title__istartswith=term)
     res = []
     for b in bslk:
          dict = {'id':b.id, 'label':b.__unicode__(), 'value':b.__unicode__()}
          res.append(dict)
     return HttpResponse(simplejson.dumps(res))

URL:

url(r'^autoco/$', 'autoco', name='autoco'),

但它仍然无效。当我在js代码中使用本地值时它工作正常但在这种情况下我无法完成任何自动完成。当我输入要输入的内容时,终端显示日志,如"GET /autoco/?term=se HTTP/1.1" 500 9892我做错了什么。任何意见都会有帮助。感谢。

1 个答案:

答案 0 :(得分:0)

问题在于你的urls.py.您不能将视图称为字符串'autoco'。可以将其称为'myapp.views.autoco',也可以导入实际的视图函数,并将其直接引用为autoco,不带引号。