0

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
4

1 に答える 1

2

具体的には、@Validate マーカーがあるメソッドの上部で何を行っているのでしょうか?

@validate は検証デコレーターであり、リクエストのパラメーターを検証および処理するために使用されます。ソースは http code.reddit.com/browser/r2/r2/controllers/validator/validator.py#L129 で確認できます。

リターンの近くの下部では、オブジェクトをビュー ページに送信しています。ここで呼び出されているビューページはどれですか?

「ビューページ」を使用せず、そこでウィジェットを使用します。PaneStackを含む LinkInfoPage (http code.reddit.com/browser/r2/r2/lib/pages/pages.py#L1317)

したがって、 res = LinkInfoPage(...).render() は Pylons 応答形式で既に生成された html です。基になるウィジェットで .render() を再帰的に呼び出します。

PS 複数のリンクを投稿できないため、リンクに :// を追加する必要があります。

于 2010-07-20T13:37:16.723 に答える