我遇到了模板问题:我正在尝试显示一个用于更改值的表单,其中用户在textarea
中输入当前值,旧值保存在隐藏中用于审计目的的字段。这个值通常是一些HTML,当我渲染页面时,隐藏字段中的这个HTML似乎被部分呈现:我的隐藏字段的value
属性被输入的HTML中的第一个引号关闭,并且其余的HTML喷出我的页面。我尝试使用escape
装饰器,但没有改变任何东西。
答案 0 :(得分:0)
首先,更好的解决方案可能是将审核值保存在使用editable=False
定义的单独模型字段中。您仍然可以使用表单的clean方法对值进行检查:
def clean(self):
cleaned_data = super(SomeForm, self).clean()
if instance.the_audit_field == cleaned_data['the_editable_field']:
...raise a validation error?
您还可以在模型的save
方法中修改审核字段的值。
其次,假设您必须按现在的方式进行,请让我解决模板中的非转义值。我假设您正在使用以下内容:
<textarea value="{{ form.the_audit_field.value }}"></textarea>
您应该使用以下内容:
<textarea>{{ form.the_audit_field.value }}</textarea>
注意,值在<{strong>内部} textarea
,而不是value
属性。
更好的方法是简单地允许Django为您渲染字段,如下所示:
{{ form.the_audit_field }}