玩家看到的每个页面都是由一个Page类定义的pages.py。
您pages.py必须有一个page_sequence 给出页面顺序的变量。例如:
如果您的游戏有多轮,则会重复此顺序。有关详细信息,请参阅轮次。
一个Page类可以有以下任何一种可选的方法和属性。
is_displayed()True如果应显示页面,则可以定义此函数以返回; 如果应跳过页面,则可以定义为False。如果省略,将显示该页面。
例如,要仅在每个组中将页面显示为P2:
或者只显示第1轮中的页面:
如果您需要为许多页面重复相同的规则,请参阅此处。
你输入的代码is_displayed()应该返回True或False; 它不应该有任何副作用,例如修改模型字段。
vars_for_template()使用此选项将变量传递给模板。例:
然后在模板中,您可以访问a并b像这样:
oTree自动将以下对象传递给模板:player,group,subsession,participant,session和Constants。 您可以在模板中访问它们,如下所示:{{Constants.blah}}或{{player.blah}}。
如果需要将相同的变量传递给多个页面,请参见此处。
before_next_page()在这里,您可以定义在表单验证之后应该执行的任何代码,然后播放器进入下一页。
如果跳过该页面is_displayed,则before_next_page也会跳过该页面。
例:
TEMPLATE_NAME每个页面都应该有一个templates/同名的文件。例如,如果您的应用包含此页面my_app/pages.py:
然后你应该创建一个文件my_app/templates/my_app/Page1.html,(注意my_app是重复的)。见模板,了解如何编写一个HTML模板信息。
如果模板需要与页面类具有不同的名称(例如,您为多个页面共享相同的模板),请进行设置template_name。例:
timeout_seconds,timeout_submission等请参阅超时
等待页面请参阅等待页面
随机化页面序列您可以使用轮次随机化页面顺序。这里有一个例子。