我为更新视图编写了这个get_context_data
方法:
def get_context_data(self, **kwargs):
context = super(MyAccountEdit, self).get_context_data(**kwargs)
context.update({
'form_title': 'Edit My Account',
'form_attributes': 'method="post"',
'form_button_label': 'Save'
})
return context
所以我创建/更新了三个上下文变量。但是,当我在浏览器中查看时,表单显示如下:
<form method=""post"">
由于附加引号,表单使用get
而不是post
,因为它在method=
之后将该行解释为空字符串。我在代码中更改了这一行后:
'form_attributes': 'method="post"',
到此:
'form_attributes': 'method=post',
似乎可以将HTML修复为我希望它呈现的方式:
<form method="post">
所以,问题是:为什么模板标签插入以这种方式工作?我有什么误会?我也尝试转义引号并在外面使用双引号。
以下是我的模板的相关部分:
<form {{ form_attributes }}>
{% csrf_token %}
<input type="hidden" name="next" value="{{ next }}">
{{ form.as_p }}
<button class="button-primary" type="submit">{{ form_button_label }}</button>
</form>
答案 0 :(得分:0)
这是一个微不足道的错误,但希望将来会有人制作并搜索Stack Overflow。
问题在于我应该使用safe
过滤器来确保更换按我原先预期的那样发生。
工作模板部分:
<form {{ form_attributes|safe }}>
这导致我期望的输出:
<form method="post">