繁体   English   中英

模板渲染快捷方式未显示任何结果

[英]Template Render Shortcuts not showing any result

我试图将我的views.py上的pymongo变量传递给模板。 我没有收到任何错误,但是我的代码也没有呈现到模板中。

views.py:

    def getTheA(request):
       for x in mycol.aggregate([{"$unwind":"$tags"},{'$match': {'tags.tag.name':'A A',}},{'$project': {'url': 1, 'AR': 1, 'tags.tag.name': 1, 'tags.variables': 1, '_id': 0}},]):
           theURLs = x['url']
           theNames = json.dumps(x['tags']['tag']['name'])
           theVars = json.dumps(x['tags']['variables'])
           context = {'theURLs' : theURLs}
       return render(request, 'templates/a.html', context)

我的HTML代码非常简单。 我只是想打印网址列表:

   <ul>
      <li><b>URLSSSS</h1></b>
      {% for theURL in theURLs %}
         <li>{{ theURL.theURLs }} </li>
      {% endfor %}
   </ul>

我的结果:

  • URLSSSS

我是Django和MongoDb的新手,似乎无法弄清楚哪里出了问题。

当模板中有{{ xy }}时,表示“对象x属性或字典键y ”。

因此,在模板中,当您拥有{{ theURL.theURLs }} ,这意味着“对象theURL属性或字典键theURLs ”。

theURL已经在循环中的每个对象theURLs 这些对象是否真的具有也称为theURLs属性? 您的代码中没有任何东西表明是这种情况。

好了,长时间查看代码后,有两个主要问题。

  1. <li>{{ theURL.theURLs }}</li>应该只是<li>{{ theURL }}</li>
  2. 您的for循环已严重混乱。 在当前形式下,您仅采用您迭代的最后一个URL。 以这种方式修复它:

    def getTheA(request): theURLs = [] for yadayadayada: theURLs.append(x['url']) theNames = json.dumps(x['tags']['tag']['name']) theVars = json.dumps(x['tags']['variables']) context = { 'theURLs' : theURLs } return render(request, 'templates/a.html', context=context)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM