如何扩展Django表单中mensaje字段的Textarea控件?
调整Django表单中Textarea控件尺寸的方法
有两种常用方式可以扩展mensaje字段对应的Textarea显示尺寸:
方法一:在表单类中直接设置控件属性
修改你的Formulario_Contacto类,给forms.Textarea添加attrs参数,通过rows(行数)和cols(列数)定义基础尺寸,或用style直接设置宽高(更灵活):
class Formulario_Contacto(forms.Form): asunto=forms.CharField(label="Nombre", required=True) email=forms.EmailField(label="Email", required=True) # 方式1:用rows和cols定义行数列数 mensaje=forms.CharField( label="Contenido", required=True, widget=forms.Textarea(attrs={'rows': 8, 'cols': 60}) ) # 方式2:用style直接设置宽高(适配响应式场景) # mensaje=forms.CharField( # label="Contenido", # required=True, # widget=forms.Textarea(attrs={'style': 'width: 100%; height: 200px;'}) # )
方法二:通过CSS样式控制
如果不想修改Python代码,可在模板文件Form_Contacto.html中通过CSS调整:
方式1:给控件加类名后设置样式
先在表单类中给Textarea添加class属性:
mensaje=forms.CharField( label="Contenido", required=True, widget=forms.Textarea(attrs={'class': 'large-textarea'}) )
再在模板的<style>标签或外部CSS文件中添加规则:
.large-textarea { width: 100%; height: 250px; resize: vertical; /* 允许用户仅垂直调整大小 */ }
方式2:直接针对控件ID设置样式
Django会自动为表单字段生成id_字段名格式的ID,可直接在模板中写CSS:
<div> {{ form.mensaje.label_tag }} {{ form.mensaje }} {% if form.mensaje.errors %} <div class="error">{{ form.mensaje.errors }}</div> {% endif %} </div> <style> #id_mensaje { width: 100%; height: 200px; } </style>
内容的提问来源于stack exchange,提问作者Julian Regueira
相关产品推荐
相关产品推荐

