Django to_html()更新为允许用户选择行

时间:2018-08-15 16:35:30

标签: python django

我要用户输入一个字符串,并为他们提供一些选项供您选择。这些选项存储为数据框,我使用to_html()函数对其进行渲染。但是,我找不到有关如何编辑to_html()调用的任何信息,以允许我进行编辑,以便表可以具有可选行。

其他所有东西都很可爱!

这是views.py中的相关行

def result(request):
  search_term=request.POST.get('q','')
  search_term=str(search_term)
  lkp = run_lkp(SearchString)
  result = []
  for l in lkp:
    result.append(dfCorpus.ix[l])
  df= result[0]  
  html_df=df.to_html(index=False)
  return render(request, 'result.html', {'html_df': html_df,'post_output': request.POST.get('q','')})

这是result.html;

<html>
 <h1><strong>lookup</strong></h1> 
    <head>
        <title>select right one</title>
    </head>
<body>
<h3>You searched for:</h3>  {{ post_output }}
<h3>Your results:</h3> {{ html_df|safe }}
</body>
</html>

我认为这是可能的,但是我不知道怎么做!

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用

html_df=[v for k, v in df.T.to_dict().items()])

然后,您可以遍历模板中的记录并使用自己的html,例如:

<table width="100%">    
<thead>
    <tr>
        <th>Fieldname</th>
        <th>Fieldname</th>
        <th>Fieldname</th>
        <th>Fieldname</th>
        <th>Fieldname</th>
    </tr>   
</thead>
<tbody>
    {% for item in html_df %}
    <tr>
        <td>{{ item.fieldname }}</td>
        <td>{{ item.fieldname }}</td>
        <td>{{ item.fieldname }}</td>
        <td>{{ item.fieldname }}</td>
        <td>{{ item.fieldname }}</td>
    </tr>       
    {% empty %}
    <tr>
        <td colspan="5">No Records</td>
    </tr>
    {% endfor %}                
</tbody>            
</table>