我有以下表格:
from django import forms
class PostForm(forms.Form):
message = forms.CharField(widget=forms.Textarea)
以及我的模板中的以下部分
<p>{{ form.message }}</p>
它将字段渲染为指定的文本区域。尽管对于模板,我想将其设置为4行25列,而不需要实际接触表单定义。这可能吗?
class PostForm(forms.Form):
message = forms.CharField(widget=forms.Textarea)
def set4x25(self):
self.fields['message'].widget.attrs = {'rows':'4', 'cols': '25'}
在模板中:
{{ form.set4x25 }}
{{ form.message }}
你可以根据自己的喜好定制这个想法。
您可以在模板中使用django小部件调整:
{% load widget_tweaks %}
<p>{% render_field form.message rows="4" cols="25" %}</p>
或
{% load widget_tweaks %}
<p>{{ form.message|attr:"rows:4"|attr:"cols:25" }}</p>
你不能从模板中完成,但你可以:
-
使用CSS指定文本区域的宽度和高度。这将覆盖行和列属性
-
手动渲染字段:
{% with form.message as field %} <textarea name="{{ field.html_name }}" id="{{ field.html_initial_id }}" rows="4" cols="25">{% if field.data %}{{ field.data }}{% endif %}</textarea> {% endfor %}