【问题标题】:Why django TemplateSyntaxError is raised in here?为什么在这里提出 django TemplateSyntaxError ?
【发布时间】:2021-01-03 08:07:48
【问题描述】:

我试图遍历我的视图的上下文并仅获取 'ga:deviceCategory' 值,我在 HTML 中运行的代码是:

<div class="card-body">
  {% for i in pvdc %}
    <p>{{ i.get('ga:deviceCategory') }}</p>
  {% endfor %}
</div>

我对 django 的看法是:

def dashboard(request):
  context = {'pvdc': [{'ga:deviceCategory': 'desktop', 'ga:pageviews': 673, 'ga:avgSessionDuration': 53.4447946},
{'ga:deviceCategory': 'mobile', 'ga:pageviews': 2373, 'ga:avgSessionDuration': 69.62674418604651},
{'ga:deviceCategory': 'tablet', 'ga:pageviews': 322, 'ga:avgSessionDuration': 26.205426356589147}]}
  return render(request, 'user/index.html', context)

我收到的语法错误是: 无法解析来自 'i.get('ga:deviceCategory')' 的剩余部分:'('ga:deviceCategory')'

这里有什么问题,我怎样才能得到这些值?

【问题讨论】:

    标签: python django django-templates


    【解决方案1】:

    数据不是从 for 循环中呈现的,因此您需要从

    中删除 get

    {{ i.get('ga:deviceCategory') }}

    <div class="card-body">
      {% for i in pvdc %}
        <p>{{ i.'ga:deviceCategory'}}</p>
      {% endfor %}
    </div>
    

    【讨论】:

    • 谢谢你,Tarun,但是,它仍然会引发相同的 TemplateSyntaxError
    【解决方案2】:

    可能还有另一种更好的方法,但现在试试这个 这个错误是因为: 这个。 在 Dictionary 中将数据传递给您时,您必须更改 dictionary 中的 key 名称。

    context = {'pvdc': [{'ga_deviceCategory': 'desktop', 'ga:pageviews': 673, 'ga:avgSessionDuration': 53.4447946}
    

    并像这样访问您的模板

    <div class="card-body">
      {% for i in pvdc %}
        <p>{{ i.0 }}</p>
      {% endfor %}
    </div>
    

    【讨论】:

    • 它仍在引发相同的 TemplateSyntaxError 与 'ga_deviceCategory' 编辑。有什么建议吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    • 2021-11-09
    • 2017-03-23
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多