You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何扩展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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 01:52:24