我正在尝试了解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
答案 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。你需要添加://链接,因为它不允许发布多个链接。