python - 将元素附加到列表

时间:2017-11-28 19:23:21

标签: python list index-error

我从以下代码中得到列表索引错误超出范围:

<a href="javascript:void(0)" onclick="openSettings()">Settings</a>
<script>
func openSettings(){
   window.webkit.messageHandlers.MyMessageHandler.postMessage("openSettings");
}
</script>

使用append?

将新元素添加到列表中是不正确的

2 个答案:

答案 0 :(得分:2)

此处的问题是limit可能大于过滤后的帖子数。您应该采取两者中的最小值:

for i in range(min(limit, len(posts))):
    related_post.append(posts[i])

但坦率地说,通过切片实现这一点可能要容易得多,然后你就不必为这个min调用而烦恼了

@register.filter(name='get_posts')
def get_posts(topic, limit):
    posts = Post.objects.filter(topic=topic)
    return posts[:limit]

答案 1 :(得分:1)

这里不需要任何循环,你可以这样做,

@register.filter(name='get_posts')
def get_posts(topic, limit):
    related_post = Post.objects.filter(topic=topic)[:limit]
    return related_post