我从以下代码中得到列表索引错误超出范围:
<a href="javascript:void(0)" onclick="openSettings()">Settings</a>
<script>
func openSettings(){
window.webkit.messageHandlers.MyMessageHandler.postMessage("openSettings");
}
</script>
使用append?
将新元素添加到列表中是不正确的答案 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