【发布时间】:2018-02-14 10:44:23
【问题描述】:
我有这个视图函数可以从 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})
我几乎尝试了所有方法,但行值没有传递给我的模板。我什至尝试传递一个简单的字符串值,甚至没有通过。这是我希望在其中显示用户 ID 和帐户编号的模板表。
<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个小时!有人可以解决这个问题吗?
【问题讨论】:
-
此代码根本不起作用,因为
render期望 Exprator 所说的三个参数,因此会将{'rows': rows}解释为模板名称并引发 TemplateDoesNotExist 错误。因此,您的视图似乎实际上并没有被调用。您可能需要显示 urls.py 并说明您要访问的 URL。 -
我将请求添加为参数,但模板页面上仍然没有显示任何内容。
-
我没有收到任何错误
-
是的,因为正如我所说您的视图没有被调用。正如我也说过的,您应该发布您的 urls.py 并说明您实际访问的是哪个 URL。
-
好吧..但它有点乱.. urls.py