Django:渲染不将上下文变量传递给模板

时间:2018-02-14 10:44:23

标签: python django

我有这个视图功能来从AWS Dynamodb获取用户ID和帐号:

 def dsctbl2(request):
  dynamodb=boto3.client('dynamodb', region_name='us-west-2')
  response = dynamodb.scan(
    TableName='User-Account')
  filtered = response['Items']
  length = len(filtered)
  for k in range(length):
    accnum = filtered[k]['AccountNum']['S']
    uid = filtered[k]['UserId']['S']
    f = dict(AccountNum=accnum,userID=uid)
    rows = list(f.items())
  return render('useradd.html',{'rows': rows})

我已经尝试了几乎所有东西,但行值却没有传递给我的模板。我甚至尝试传递一个简单的字符串值,甚至没有通过。这是我的模板表,我希望显示userid和accountnum。

 <div class="mytable">
   <table>
    <thead>
    <tr>
    <th>Account #</th>
    <th>User Id</th>
    </tr>
    </thead>
   <tbody>
      {% for row in rows %}
   <tr>
    <td>{{ row.AccountNum }}</td>
    <td>{{ row.UserId }}</td>
   </tr>
        {% endfor %}
   </table>
 </div>

当我点击模板时,没有任何显示。除表格标题外,没有显示任何值。为什么渲染没有将我的视图中的上下文变量(列表值)传递给模板?我被困了大约6个小时!有人可以解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

return render(request,'useradd.html',{'rows': rows})

您需要将请求作为第一个参数传递,