簡體   English   中英

帶有模板變量替換的額外報價集

[英]Extra set of quotes with template variable replacement

我為更新視圖編寫了此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>

這是一個微不足道的錯誤,但是希望將來有人能夠做到並搜索Stack Overflow。

問題是我應該使用safe過濾器以確保更換能夠如我最初預期的那樣進行。

工作模板部分:

<form {{ form_attributes|safe }}>

結果是我期望的輸出:

<form method="post">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM