django forms中的input组件 输入文字时,下方弹出与之相匹配的数据列表 怎么用代码实现
时间: 2023-05-22 17:03:59 浏览: 138
您可以使用django-autocomplete-light包来实现此功能。以下是使用此包的示例代码:
# 安装django-autocomplete-light
pip install django-autocomplete-light
# settings.py 中添加以下内容
INSTALLED_APPS = [
# ...
'autocomplete_light',
]
# urls.py 中添加以下内容
from django.urls import path
from autocomplete_light import shortcuts as autocomplete_light_shortcuts
urlpatterns = [
# ...
path('autocomplete/', include(autocomplete_light_shortcuts.urls)),
]
# forms.py 中添加以下内容
from django import forms
from .models import YourModel
class YourForm(forms.ModelForm):
class Meta:
model = YourModel
fields = ['name']
name = forms.ModelChoiceField(
queryset=YourModel.objects.all(),
widget=autocomplete_light.ChoiceWidget(
autocomplete='YourModelAutocomplete'
)
)
# views.py 中添加以下内容
from django.shortcuts import render
from .models import YourModel
def your_view(request):
your_model_autocomplete = autocomplete_light.shortcuts.ModelAutocomplete(
YourModel.objects.all(),
search_fields=['name'],
)
return render(request, 'your_template.html', {
'your_model_autocomplete': your_model_autocomplete,
})
# your_template.html 中添加以下内容
{% extends 'base.html' %}
{% block content %}
<form method="post">
{% csrf_token %}
{{ form.as_p }}
</form>
{% endblock %}
{% block extrajs %}
{{ block.super }}
{{ your_model_autocomplete.media }}
{% endblock %}
```
您需要使用ModelChoiceField指定对应您模型中的字段,使用ChoiceWidget添加autocomplete参数,指定自定义的autocomplete。最终结果将为您呈现一个AutoComplete输入框。
阅读全文