我正在尝试将views.py上的pymongo变量传递给模板。我没有收到任何错误,但是我的代码也没有呈现到模板中。
views.py:
_val_:"div(popularity, price)"
我的HTML代码非常简单。我只是想打印网址列表:
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)
我的结果:
我是Django和MongoDb的新手,似乎无法弄清楚哪里出了问题。
答案 0 :(得分:0)
当模板中有{{ x.y }}
时,表示“对象y
的属性或字典键x
”。
因此,在模板中,当您拥有{{ theURL.theURLs }}
时,表示“对象theURLs
的“属性或字典键theURL
”。
theURL
已经在theURLs
中的每个对象上循环。这些对象是否真的也具有名为theURLs
的属性?您的代码中没有任何东西表明是这种情况。
答案 1 :(得分:0)
好了,长时间查看代码后,有两个主要问题。
<li>{{ theURL.theURLs }}</li>
应该只是<li>{{ theURL }}</li>
您的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)