Django的无法将表单字段设为自动完成

问题描述

在为我的网络应用开发搜索过滤器时遇到了一个问题。我需要过滤器的一个字段作为自动填充字段,但不幸的是,它无法按预期工作。当我在此字段中键入smth时,尽管它必须显示一些选项,但它什么也不显示。 我在该字段中使用Bootstrap,该类为“ basicAutoComplete”,并且如您在下面的图片中所见(请不要注意字段的错误位置),没有显示任何信息。但是,如果我删除“ basicAutoComplete”,那么我的所有建筑物都将显示在下拉列表中,如第二张图片所示。 有人可以告诉我如何解决吗?

class 'basicAutoComplete'

no class

这是我的代码

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 (将#修改为@)