Django标签自动建议

时间:2015-11-25 11:57:06

标签: django django-forms django-taggit

我使用taggit我希望django taggit autosuggest使用自定义表单(不,我不能使用ModelForm)。但是,无论我做什么,我都无法在视图中使用自动提示。

这是我的(减少)模型:

from taggit_autosuggest.managers import TaggableManager

class Ook(models.Model):
    tags = TaggableManager()

这是我的(缩减)形式:

from taggit.forms import TagField
from taggit_autosuggest.widgets import TagAutoSuggest

class NewOokForm(forms.Form):
    #m_tags = TagField()  # This works but clearly has no autosuggestion.
    m_tags = TagField(widget=TagAutoSuggest('taggit'))  # Does not work!

我在视图中没有错误,只是没有标记建议。

我做错了什么?

我正在使用Django 1.8,这个问题的最新版本是1.8.7。

1 个答案:

答案 0 :(得分:2)

(我不能写评论......)澄清情况:

如果缺少任何文件,您应该从存储库中获取它。

(我们假设/ static在您的配置中是STATIC_URL)

更新:将Form与Model连接时使用ModelForm开始工作:

from django.forms import ModelForm


class OokForm(ModelForm):
    class Meta:
        model = Ook
        fields = ['name', 'tags']
在views.py中

def OokView (request):
    form =  OokForm()
    c = {'form': form}
    return render(request,'ook_form.html', c)
在ook_form.html中

<html>
<head>
    <!-- Be sure that there is no JS errors during loading -->
    <script src="//code.jquery.com/jquery-1.10.1.min.js"></script>
    <link href="/static/jquery-autosuggest/css/autoSuggest-grappelli.css" type="text/css" media="all" rel="stylesheet" />
    <script type="text/javascript" src="/static/jquery-autosuggest/js/jquery.autoSuggest.minified.js">
    </script>
</head>

<form action="/your-name/" method="post">
    {% csrf_token %}
    {{ form }}
    <input type="submit" value="Submit" />
</form>

</body>