django - Django Select2Widget 没有用脆的形式正确地设置样式
问题描述
我正在使用django-select2包在 ForeignKey 字段上实现 Searchable Select。按照文档中提到的步骤,我成功地使功能正常工作,但我在样式方面遇到了问题。
为了呈现我的表单,我使用了crispy-forms。除 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>
这就是我在 ModelForm 中设置小部件的方式。
def __init__(self, *args, in_org, **kwargs):
...
self.fields['current_user'].widget = Select2Widget()
self.fields['current_user'].queryset = in_org.user_set.all()
我觉得这主要是 CSS 样式的问题,我无法弄清楚这个问题。任何帮助将不胜感激。
解决方案
对于那些正在寻找解决方案的人(尽管我认为这不是最好的),
您可以通过传递来解决布局问题attrs={'data-width': '100%'}
例如
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%'},
),
)
推荐阅读
- python - 如何将输出转换为列表格式?
- ios - 有没有办法更改和保存属性的默认值,以便它们用于将来创建的所有新对象?
- java - 如何在 Mockito.any() 中提及路径接口
- python-3.x - 如何在 Python 中同步(使线程安全)类的所有实例?(理想地在超类中实现)
- mysql - MySQL 运行 SQL 脚本错误 - [WinError 32] 该进程无法访问该文件,因为它正被另一个进程使用:
- aws-lambda - 无服务器框架 API 网关类型错误
- database - 隐藏数据库属性变量 Spring Boot Heroku
- keras - 尽管使用了 Dropout、MaxPooling、Early Stopping 和正则化器,我的 CNN 模型仍然过拟合。如何进一步防止过拟合?
- python - HtmlResponse 在 Scrapy Shell 中工作,但不在脚本中?
- android - Android/Java 上的 RxJava3:使用 SingleObserver 的问题(但 Observer 很好!)