带有按钮和表单的TemplateColumn仅返回记录名称而不是内容

问题描述

我试图在表中添加具有某些功能的按钮,以便使用POST将一些信息返回到视图:

class ProductTable(django-tables2.Table):
    Template = (f"""<form action="/product_all/" method="POST">{{% csrf_token %}}
                        <button> 
                            <input type="hidden" name="store_id" value="{{ record.get_store_id }}"/>view</button>    
                    </form>""") 

view = TemplateColumn(Template)

但是在打印请求时我得到:

<QueryDict: {'store_id': ['{ record.get_store_id }'],'csrfmiddlewaretoken': ['...']}>

代替值。

解决方法

我在Django上还很新,但是我认为您需要另一套{}

Template = (f"""<form action="/product_all/" method="POST">{{% csrf_token %}}
            <button> 
                <input type="hidden" name="store_id" value="{{{ record.get_store_id }}}"/>view</button>    
            </form>""") 

所以模板的最终结果是:

<form action="/product_all/" method="POST">{% csrf_token %}
    <button> 
         <input type="hidden" name="store_id" value="{{ record.get_store_id }}"/>view</button>    
</form>

现在正在写:

<form action="/product_all/" method="POST">{% csrf_token %}
     <button> 
          <input type="hidden" name="store_id" value="{ record.get_store_id }"/>view</button>    
</form>