这是我的页面:
<p>Request as string: {{ request.POST }}</p>
Run Code Online (Sandbox Code Playgroud)
哪个正确呈现:
作为字符串请求: <QueryDict: {'csrfmiddlewaretoken': ['HPOQ0pfVf5DU0Lkz05IXqbECipdPUOcTiNGYWd4giZC7LVL5Y6jdT0nb0AcmX9pd'], 'txtNumBins': ['3'] }>
我正在尝试访问列表 txtNumBins。但是当我在 Django 模板中尝试以下任何操作时:
<p>Total bins: {{ request.POST['txtNumBins'][0] }} </p>
<p>Total bins: {{ request.POST.get('txtNumBins')[0] }} </p>
<p>Total bins: {{ request.POST['txtNumBins'] }} </p>
<p>Total bins: {{ request.POST.get('txtNumBins') }} </p>
Run Code Online (Sandbox Code Playgroud)
我不断收到相同的错误:
TemplateSyntaxError at /analysis/
Could not parse the remainder: '['txtNumBins'][0]' from'request.POST['txtNumBins'][0]'
Run Code Online (Sandbox Code Playgroud)
如何按名称访问字典元素 txtNumBins?
Django 模板语言不是 Python。您不能像使用get()参数那样调用函数,也不能使用方括号进行字典/索引查找。相反,您可以使用点进行字典/索引查找以及属性查找。
在这种情况下,您想要:
{{ request.POST.txtNumBins }}
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅有关变量的模板文档。
正如您所发现的,默认情况下您不能使用函数调用、按键字典访问或模板内的列表索引。您最好在您的视图中获取此信息,并将其作为响应上下文的一部分传递。例如:
def my_view(request):
total_bins = request.POST['txtNumBins'][0]
return render(request, 'my_template.html', {'total_bins': total_bins})
Run Code Online (Sandbox Code Playgroud)
然后在您的模板中您可以执行以下操作:
<p>Total bins: {{ total_bins }}</p>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4363 次 |
| 最近记录: |