2010-07-19 41 views
0

我想了解reddit的的来源,我在看的front.pyreddit get_comments操作,有人可以澄清这里发生了什么?

这个get_comments操作方法是显示一个故事的行动:

http://code.reddit.com/browser/r2/r2/controllers/front.py#L139

具体来说,什么是该方法的顶部有一个@Validate标记吗?

而在靠近返回的底部,它发送对象到视图页面。

在此处调用哪个视图页?

211 res = LinkInfoPage(link = article, comment = comment, 
212       content = displayPane, 
213       subtitle = _("comments"), 
214       nav_menus = [CommentSortMenu(default = sort), 
215           NumCommentsMenu(article.num_comments, 
216               default=num_comments)], 
217       infotext = infotext).render() 
218   return res 

回答

2

具体来说,什么是方法做的,那里是一个@Validate标志的顶部?

@validate是验证装饰器,用于验证和处理来自请求的参数。 您可以在http code.reddit.com/browser/r2/r2/controllers/validator/validator.py#L129

,而在返回附近的底部看到它的来源,它发送对象视图页。 在此处调用哪个视图页?

它不使用'查看页面',它在那里使用小部件。 LinkInfoPage其中包含PaneStack(http code.reddit.com/browser/r2/r2/lib/pages/pages.py#L1317)

So res = LinkInfoPage(...)。render()已经生成html,在塔式响应表格中。它在基础小部件上递归调用.render()。

P.S.你需要添加://链接,因为它不允许发布多个链接。

相关问题