问题描述
在为我的网络应用开发搜索过滤器时遇到了一个问题。我需要过滤器的一个字段作为自动填充字段,但不幸的是,它无法按预期工作。当我在此字段中键入smth时,尽管它必须显示一些选项,但它什么也不显示。 我在该字段中使用Bootstrap,该类为“ basicAutoComplete”,并且如您在下面的图片中所见(请不要注意字段的错误位置),没有显示任何信息。但是,如果我删除“ basicAutoComplete”,那么我的所有建筑物都将显示在下拉列表中,如第二张图片所示。 有人可以告诉我如何解决吗?
这是我的代码:
views.py
def device_rooms_search(request):
device_rooms = DeviceRooms.objects.all()
deviceRoomsFilter = DeviceRoomsFilter(request.GET,queryset=device_rooms)
device_rooms = deviceRoomsFilter.qs
builds = Buildings.objects.all()
context = {'device_rooms_list': device_rooms,'deviceRoomsFilter': deviceRoomsFilter}
return render(request,"database/device_rooms/device_rooms_search.html",context)
filters.py
class DeviceRoomsFilter(df.FilterSet):
name = df.CharFilter(field_name='room_number',lookup_expr='icontains')
descr = df.CharFilter(field_name='description',lookup_expr='icontains')
class Meta:
model = DeviceRooms
fields = ['name','facility_id','building_id','device_room_type','descr']
models.py
class DeviceRooms(models.Model):
id = models.CharField(max_length=7,primary_key=True)
room_number = models.CharField(max_length=30,unique=True)
device_room_type = models.ForeignKey(DeviceRoomTypes,on_delete=models.CASCADE)
building_id = models.ForeignKey(Buildings,on_delete=models.CASCADE)
facility_id = models.ForeignKey(Facilities,on_delete=models.CASCADE)
description = models.CharField(max_length=200,null=True)
search.html
<form method="get" action="">
{% csrf_token %}
<div style="text-align: center">
{% for field in deviceRoomsFilter.form %}
{% if field.name == 'name' %}
Room name: {{ field }}
{% endif %}
{% if field.name == 'facility_id' %}
Facility: {{ field }}
{% endif %}
{% if field.name == 'building_id' %}
Building: {% render_field field class="basicAutoComplete form-control col-md-2 offset-md-5" %}
{% endif %}
{% if field.name == 'device_room_type' %}
Room type: {{ field }}
{% endif %}
{% if field.name == 'descr' %}
Description: {{ field }}
{% endif %}
{% endfor %}
</div>
</form>
<script>
$('.basicAutoComplete').autoComplete( {minLength: 1} );
$('.dropdown-menu').css({'top': 'auto','left': 'auto'});
</script>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)