reddit get_comments动作,有人可以澄清这里发生了什么吗?

时间:2010-07-19 16:56:38

标签: python pylons reddit

我正在尝试了解reddit的来源,我正在查看front.py的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

1 个答案:

答案 0 :(得分:2)

  

具体来说,在有@Validate标记的情况下,该方法的最高部分是什么?

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

中查看其来源。
  

在返回附近的底部,它将对象发送到视图页面。   在这里调用哪个视图?

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

所以res = LinkInfoPage(...)。render()已经在Pylons响应表单中生成了html。它以递归方式调用底层小部件上的.render()。

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