2012-01-31 4 views
6

私はBrowserViewを使用してテンプレートビューを作成するのに役立つthis URLをフォローしています。これまでのところ、それは正常に動作し、私はビュークラスを持つテンプレートを作成することができます。私が知っている必要があり何Plone 4:ビュークラス(BrowserView)への引数の受け渡し

は、ビュークラス、すなわち内部のメソッドに引数を渡すことが可能であるかどうかである私は、このような関数の内部でstill_dreaming機能とそれを処理する追加の引数を追加する必要が

from Products.Five import BrowserView 

class Html(BrowserView): 
    def still_dreaming(self): 
     msg = "Some people are still dreaming" 
     return msg 

def still_dreaming(self, some_arg): 
     msg = some_arg + " Some people are still dreaming" 
     return msg 

次に、関数を呼び出して、テンプレートから引数を渡す必要があります。このようなもの:

<p tal:content="view/still_dreaming(item/publication_date)"></p> 

残念ながら、私は引数にメソッドを渡す正しい方法を知らない。どんな指針も大変ありがとうございます。

編集: item/publication_dateは何らかの変数で、何でもかまいません。それは以前に定義されたばかりです。

答えて

7

はい。

<p tal:content="python:view.still_dreaming(item.publication_date)" /> 

TAL式では、TALトラバーサル構文(デフォルト)、Python構文、または文字列構文を使用できます。

http://collective-docs.readthedocs.org/en/latest/functionality/expressions.html

+0

も同じです。 しかし、私はインターネット上のどこかで、 "python:"という見方が悪いと読んでいます... 時々、私はちょっと混乱しています。 – Jihaisse

+2

Python:過去にはビュークラスがなく、すべてのコードがテンプレート内に置かれていたので、HTMLと1つのライナーのpythonsを混乱させるという意味では悪いです。 –

+1

複雑なPythonループと関数を実際の.pyファイルとビュークラス –

関連する問題