2010-07-19 1 views
0

Я пытаюсь понять источник Reddit, и я смотрю на методе get_comments действие front.pyreddit get_comments action, может кто-то уточнить, что здесь происходит?

Это действие, которое отображает историю:

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 - это декоратор, который используется для проверки и обработки параметров по запросу. Вы можете увидеть его источники по адресу 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)

Так res = LinkInfoPage (...). Render() уже сгенерирован html, в форме ответов Pylons. Он рекурсивно вызывает .render() для основных виджетов.

P.S. вам нужно добавить: // к ссылкам, поскольку он не позволяет размещать более одной ссылки.

Смежные вопросы