Django:在文本字段中自动建议

时间:2017-09-25 01:42:43

标签: python django autocomplete django-forms autosuggest

我试图找出如何使用Django(1.11)在文本字段中获得建议。我已经查看了自动完成光的文档,但到目前为止我还没能弄明白我的用例。关于该软件包的文档对于总菜单来说并不容易理解:)

我想要一个文本字段,在您键入时提供建议,这些建议来自数据库。

E.g。如果它是用户键入的食物项目列表,则C' C'它建议鸡和薯片,因为它们早先已被某人输入。我也希望用户能够输入奶酪,即使它之前没有输入过。

建议"算法"只需要检查输入的内容是否与现有项目的第一个字符匹配。

这是django项目的简化版本:

urls.py

from django.conf.urls import url
from django.contrib import admin
from testapp.views import TestView
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'$',TestView.as_view())
]

models.py

from django.db import models
class TestModel(models.Model):
    name = models.CharField(max_length=120)

    def __str__(self):
        return self.name

forms.py

from django import forms
from .models import TestModel

class TestFormClass(forms.ModelForm):
    class Meta:
        model = TestModel
        fields = ('__all__')

views.py

from django.shortcuts import render
from django.views.generic import CreateView
from .forms import TestFormClass

class TestView(CreateView):
    form_class = TestFormClass
    template_name = 'template.html'
    success_url = "/"

template.html

<html>
<header><title>This is title</title></header>
<body>
Enter something <br>
{% block content %}
<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Submit" />
</form>

{% endblock %}

</body>
</html>

我希望有人有一个相对简单的解决方案来添加此代码,目前我并不担心身份验证或任何事情,只是寻找基本的解决方案。

1 个答案:

答案 0 :(得分:0)

您可以使用django-autocomplete-light