Django Select2Widget未正确使用脆表单设置样式

Django Select2Widget未正确使用脆表单设置样式,django,django-crispy-forms,django-select2,Django,Django Crispy Forms,Django Select2,我正在使用这个包在ForeignKey字段上实现Searchable Select。 通过遵循文档中提到的步骤,我成功地实现了功能,但我在样式方面遇到了问题 为了渲染我的表单,我使用了crispy表单。除Select2Widget外,所有其他小部件都能正确呈现 如上图所示,表单元素的高度和宽度不像其他元素那样是动态的 生成的HTML代码: <div class=""> <select name="current_user" data-minimum-input-length=

我正在使用这个包在ForeignKey字段上实现Searchable Select。 通过遵循文档中提到的步骤,我成功地实现了功能,但我在样式方面遇到了问题

为了渲染我的表单,我使用了crispy表单。除Select2Widget外,所有其他小部件都能正确呈现

如上图所示,表单元素的高度和宽度不像其他元素那样是动态的

生成的HTML代码:

<div class=""> <select name="current_user" data-minimum-input-length="0" data-allow-clear="true" data-placeholder=""
        class="select2widget form-control django-select2" required id="id_current_user">
        <option value=""></option>
        <option value="">---------</option>
        <option value="4" selected>Arpita</option>

    </select> </div>
</div>
<div id="div_id_device_admin" class="form-group"> <label for="id_device_admin" class=" requiredField">
        Device admin<span class="asteriskField">*</span> </label>
    <div class=""> <select name="device_admin" data-minimum-input-length="0" data-allow-clear="true" data-placeholder=""
            class="select2widget form-control django-select2" required id="id_device_admin">
            <option value=""></option>
            <option value="">---------</option>
            <option value="4" selected>Arpita</option>

        </select> </div>
</div>

我觉得这主要是CSS样式的问题,我无法解决这个问题。任何帮助都将不胜感激。

对于那些正在寻找解决方案的人(尽管我认为这不是最好的)

您可以通过传递
attrs={'data-width':'100%}

e、 g

def __init__(self, *args, in_org, **kwargs):
       ...
        self.fields['current_user'].widget = Select2Widget()
        self.fields['current_user'].queryset = in_org.user_set.all()
self.fields['current_user'].widget = Select2Widget(attrs={'data-width': '100%'})
current_user = forms.ChoiceField(
    widget=ModelSelect2Widget(
        model=User,
        search_fields=['username__istartswith'],
        attrs={'data-width': '100%'},
    ),
)