1

誰かが私がmodels/menu.pyファイルの次のコードを理解するのを手伝ってくれます:

response.menu = [  
(T('Home'),False,URL('default','index')),  
(T('About'),False,URL('default','what')),  
(T('Download'),False,URL('default','download')),  
(T('Docs & Resources'),False,URL('default','documentation')),  
(T('Support'),False,URL('default','support')),  
(T('Contributors'),False,URL('default','who'))  
]

ここでは、URL(例:default / what)でコントローラーを指定します。これでビューを指定したい場合はどうなりますか?

4

1 に答える 1

9

ここでは、URL でコントローラーを指定します (eg.default/what)。これでビューを指定したい場合はどうすればよいですか?

web2py では、URL はビューに直接ルーティングされません。むしろ、それらはコントローラーにルーティングされ、コントローラーには関連付けられたビューがあります (各コントローラーにはデフォルトのビューがありますが、コントローラー自体は任意のビューを指定できます)。URL を使用して、特定のコントローラーに通常のビュー以外のビューを使用するように指示する場合は、URL の arg または var を介してそれを示すことができます。例えば:

response.menu = [...,
    (T('About'), False,URL('default', 'what', args='alt')),
    ...]

および default.py コントローラーで:

def what():
    if request.args(0) == 'alt':
        response.view = 'default/what_alt.html'
    [rest of controller code]
于 2012-04-09T13:16:31.030 に答える