我有这个相当讨厌的问题:
在模板中我有
<div class="form-group">
{{ form.aboutme.errors }}
<label for="aboutme">About Me:</label>
<textarea class="form-control" rows="10" id="aboutme" value="{{form.aboutme}}"></textarea>
</div>
它渲染了textarea预填充但是带有值,但在框的末尾打印了一个冗余的">
。
原始html看起来像这样:
<textarea class="form-control" rows="10" id="aboutme" value="<p><textarea cols=" 40"="" name="aboutme">My Name is Django</textarea>
其中显然插入了未加入textarea
标记。
该字段是:
aboutme=models.TextField(blank=True, verbose_name=_('About Me'))
并且在各自的ModelForm类中没有使用specia小部件。
真的很困惑如何正确渲染这个字段?
答案 0 :(得分:4)
textarea html标记没有值属性。正确的语法是:
<textarea class="form-control" rows="10" id="aboutme">{{ form.aboutme.value }}</textarea>
答案 1 :(得分:1)
Read more关于小部件。
在这种情况下,您可以使用以下内容。尝试从字段中获取值:
<textarea class="form-control" rows="10" id="aboutme" value="{{form.aboutme.value}}"></textarea>
如果它不起作用,请使用上面链接中的文章或following SO question将小部件添加到表单的CharField,然后只使用:
{{ form.aboutme }}
当我看到你已经完成它并且Django成功地用<textarea>
标签和填充值来渲染<p>
。您可以尝试向窗口小部件添加更多cutomization。
答案 2 :(得分:0)
aboutme = forms.CharField(required=False, widget=forms.Textarea(attrs={'rows': 10, 'cols': 40}))
<div class="form-group">
<label for="aboutme">About Me:</label>
{{ form.aboutme.errors }}
</div>
答案 3 :(得分:0)
这在最新版本中不再起作用。 {{form.aboutme}}