我的views.py:
def responded(request): reply_twt = Reply_twt.objects.all() for tweet in reply_twt: rply_tweet = home_timeline.api.get_status(tweet.tweetid) return render (request, 'analytics/responded.html', {'rply_tweet': rply_tweet})
我的html:
{% extends 'analytics/header.html' %}
{% block body %}
{% for tweet in rply_tweet %}
{{tweet.text}}
{% endfor %}
{% endblock %}
我需要在for循环中打印多个tweet.text,即使我将数据发送到html页面,也仅是单个tweet上的数据。如何解决这个问题。预先谢谢你
答案 0 :(得分:1)
您写:
for tweet in reply_twt:
rply_tweet = home_timeline.api.get_status(tweet.tweetid)
这意味着在每次迭代之后,您将使用新迭代的响应覆盖 rply_tweet
。但是您的模板似乎暗示您要呈现 all 响应(此外,由于您从不使用以前的响应,否则它只会浪费资源)。
因此,您可以例如使用所有具有列表理解的响应来构造一个list
:
rply_tweet = [home_timeline.api.get_status(tweet.tweetid) for tweet in reply_twt]
话虽如此,如果您的Reply_twt
存储了tweet的所有信息(或者至少存储了您要呈现的数据),则最好使用以下对象:
# in case a Reply_twt contains *all* the necessary data
def responded(request):
reply_twt = Reply_twt.objects.all()
return render (request, 'analytics/responded.html', {'rply_tweet': reply_twt })
答案 1 :(得分:1)
只返回推文的完整列表
views.py
def responded(request):
reply_twt = Reply_twt.objects.all()
return render (request, 'analytics/responded.html', {'rply_tweet': list(reply_twt}))