让我们说我有一个包含一些字段的表格。我想知道是否有可能进行动态查询,以便在用户在字段中键入内容时可以进行字符串匹配。就像在google中键入内容时一样,当您在搜索栏中键入内容时,它会返回选择列表。有人可以给我一个例子,说明如何以及在何处实施它吗?
答案 0 :(得分:0)
如果您要实现的是ForeignKey
的字段,则可以在表单字段上提供Queryset
,然后使用django_select2
之类的应用程序来提供小部件这将允许用户在Queryset
中搜索该字段中的项目。例如
city = forms.ModelChoiceField(
queryset=City.objects.all(),
label=u"City",
widget=ModelSelect2Widget(
model=City,
search_fields=['name__icontains'],
dependent_fields={'country': 'country'},
max_results=500,
)
)
然后在表单中,当您开始在city
字段中键入内容时,它将开始使用City.name
查找在icontains
上进行搜索。的文档是here。
如果这不是您要查找的内容,则可以编写一些Javascript来检测输入到字段的内容,然后将ajax请求发送到包含字段内容的视图。然后可以返回一个响应,该响应在与输入有关的页面中显示内容。