【问题标题】:jquery autocomplete taggingjQuery自动完成标记
【发布时间】:2010-02-03 10:08:04
【问题描述】:

谁能告诉我如何在 django 模板中使用标记自动完成功能?

我在 django 管理界面中完成了此操作,但我对如何在模板中执行此操作感到困惑。

提前致谢

【问题讨论】:

标签: jquery python django


【解决方案1】:

在我的模板中我有这个代码:

$(document).ready(function(){
  $("#tags1").autocomplete("/taglookup/", {
        width: 320,
        multiple: true,
        multipleSeparator: " "
         });
   }

在我的 url.py 上,我在 urlparttern 元组上有这个,它可以是任何东西,这取决于你想如何连接你的视图和 url!

(r'^taglookup/$', 'twine.twineapp.views.tag_lookup')

在我的views.py 上,我将tag_lookup 视图实现为:

def tag_lookup(request):
    # Default return list
    results = []
    if request.method == "GET":
        if request.GET.has_key(u'q'):
            value = request.GET[u'q']
            # Ignore queries shorter than length 2
            if len(value) > 2:
               TI = Tag.objects.filter(name__startswith=value.lower())
               results = [ x.name for x in TI]
    return HttpResponse('\n'.join(results), mimetype='text/plain')

PS:我使用的是Tagging 包,这就是为什么我在上面的代码中有 Tag 对象。

【讨论】:

  • +1。但是,如果您有数千个标签,我想这可能会变得很慢,因为它会在您每次调用 tag_lookup 时创建一个列表。
【解决方案2】:

您可以使用my django-tagging-autocomplete reusable app 并利用提供的 TagAutocomplete 表单小部件。您可以在“使用表单小部件”下了解有关使用小部件 in the documentation 的更多信息。

请注意,该应用程序要求您对标签使用 django-tagging。您还需要将{{ form.media }}(其中“form”是表单的名称)放在模板的<head> 部分中,以允许小部件包含它的JavaScript 文件。

【讨论】:

  • "所有的 css 和 javascript 都被导入"...所以如果你查看源代码 jquery.autocomplete.js 包含在标题中,并且在 @ 旁边有一个 JavaScript 代码的 sn-p 987654327@代码?它应该工作。还要确保用于通过 AJAX 检索标签列表的 URL 是可访问的。如果这没有帮助,您能否提供一个示例的 URL?
  • 这是非常重要的信息,但文档没有提及 :( 感谢@Ludwik Trammer
  • 嘿,你能告诉我,你是如何在 Django 管理界面中做到这一点的..??..任何第三方应用程序..??..哪一个..??..任何文档可用??
  • @RamandeepSingh 我不确定我是否理解您的问题。您可以在此处阅读有关自定义 Django 管理站点的信息:docs.djangoproject.com/en/1.4/ref/contrib/admin 如果您对 django-tagging-autocomplete 所做的事情特别感兴趣,可以查看源代码。它非常简短易懂。
【解决方案3】:

这是我实现自动完成的模板

$(document).ready(function() {

    $("#searchbox").autocomplete('/search_stuff/', {
        width: 300,
        multiple: false,
        matchContains: true,
        delay: 900,
        extraParams: {
               s: function() { return $("#status").val(); }
        }
});

其中 search_stuff 返回符合条件的所有项目的文本列表。这有帮助吗?

【讨论】:

  • 我不知道所有的 javascript 和 css 都正确导入了..但它仍然不起作用..任何人都可以提出一些新的建议..
猜你喜欢
  • 1970-01-01
  • 2021-04-20
  • 1970-01-01
  • 2011-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-24
  • 1970-01-01
相关资源
最近更新 更多