【问题标题】:Django jquery-ui Autocomplete with databaseDjango jquery-ui 自动完成数据库
【发布时间】:2014-10-22 12:32:23
【问题描述】:

我想在我的模型中使用 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(r'^autoco/$', 'autoco', name='autoco'),

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

【问题讨论】:

  • 请查看浏览器开发工具中的网络选项卡并显示 Ajax 请求的回溯。或者,直接在浏览器中进入“/autoco/?term=se”查看回溯。
  • 当我转到“/autoco/?term=se”时,它显示TypeError at /autoco/ 'str' object is not callable
  • 那么回溯的rest是什么?

标签: javascript jquery django jquery-ui autocomplete


【解决方案1】:

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

【讨论】:

  • 现在它说NameError at /autoco/ global name 'simplejson' is not defined 你也有机会知道这是什么原因吗?
  • 你有没有在你的views.py中导入simplejson?
  • 我使用了import json。我想这不是必需的导入。我试过import django.utils.simplejson。它没有用。编辑:我使用了from django.utils import simplejson,它起作用了。非常感谢。
猜你喜欢
  • 2011-02-21
  • 1970-01-01
  • 2012-10-22
  • 1970-01-01
  • 2011-02-02
  • 2012-02-11
  • 2015-10-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多