MASTER →  ADMIN / NEW ENTRY / COMMENT
> Your database is not ready. Try running 'otree resetdb'.

が表示された場合についてです。


これは、新しいプロジェクトやmodel.pyで新しくデータベース登録項目(Excel
に保存されるやつ)を増やしたとき等に起こります。

コマンドプロンプトで
otree resetdb
と、入力しデータベースを初期化すれば直ります。
ただし、今まで集めたデータが全て消えます(全プロジェクトです)
なので、もしデータを保存していない場合だと、このエラーがでる前の状態に戻して、
データを保存してから、初期化するようにした方がよいでしょう。

メモ:他にやりかたあるのかな?

oTree初期インストール時の
デモプログラム【prisoner】で例を示します。

Decisionの画面です。Google choromeでひらいています。


画面ではこうなっています ↑ 。

この画面の中身が、Decision.htmlのソースコードです。




Decision.htmlをブラウザを通してみると、画面になるというイメージです。
例えば、上記画像:赤枠の [ You ] を [ あなた ] と変更してみます。




画面上でも[ あなた ] となりました。



Decision.htmlのソースコード変更すれば、色々な画面を作ることができます。
ためしに、あなたを横書きにして、背景色をつけてみました。




oTree インストールおよび起動ができている状態で、Pycharmでひらいています。
インストール方法について→【実験】oTree インストール方法
ファイル構成について  →  2-1【実験】oTree のなかみ (ファイル構成) 
view.pyについて      →   2-2【実験】oTree views.py

◆ model.py
class Constants(BaseConstants):
>該当プロジェクトの大枠を設定する場所であり、定数を置く場所のイメージ。

name_in_url = 'XXXXXXXX'
>URLの名前。settings.pyファイル(詳細:(準備中))と同一にしておく必要がある。


num_rounds = 5
view.pyのpage_sequenceで設定したページを何回繰り返すか。ここでは、5回繰り返す設定にしている。
※ 詳細  2-2【実験】oTree views.pyのpage_sequenceを参照。



他にも、画面から被験者の入力ではなく、システム側で設定する定数や定型文、配列を設定できる。
例えば、
----------------------
training_1_choices = [
'Alice gets hoge points, Bob gets 0 points',
'Alice gets 200 points, Bob gets 200 points',
'Alice gets 0 points, Bob gets 300 points',
'Alice gets 100 points, Bob gets 100 points'
]
----------------------
と、設定する。これは、画面上でラジオボタンで選べるようにできる。
まず、class Player(BasePlayer): で設定する。

class Player(BasePlayer):
>該当プロジェクトで入力された値をExcel(データベース)に入力するところのイメージ。
class Player(BasePlayer)にて、以下の通り設定する。
----------------------
training_question_1 = models.CharField(
choices=Constants.training_1_choices,
widget=widgets.RadioSelect(),
)
----------------------
choices=の部分に、class Constantsで設定したtraining_1_choicesを設定しているのが分かる。
widgetは、それをラジオボタンで選べるように(RadioSelect)を指定している。
Question.htmlを開いてみると、
----------------------
{% formfield player.training_question_1 with label='Suppose Alice chose to defect and Bob chose to cooperate. How many points would Alice and Bob receive, respectively?' %}
----------------------
がある。ここで、表示している。





入力された値は、【player.training_question_1】 の名前でデータ保存(データベース、何もしてなければExcelファイルの列名として)されている。





class Subsession(BaseSubsession):
→詳細:(準備中)

class Group(BaseGroup):
→詳細:(準備中)

oTree インストールおよび起動ができている状態で、Pycharmでひらいています。
インストール方法について→【実験】oTree インストール方法
ファイル構成について  →  2-1【実験】oTree のなかみ (ファイル構成)


◆ view.py

class 名は、html名と対応しています。



例えば
Introduction.htmlに対応しているのが、
class Introduction(Page):
になります。

同じくview.pyにある【page_sequence】というところで、どのページ(html)を出すかが決定しています。
つまり、Introduction.html → Question.html .html → Feedback1.html → Decision.html → ResultsWaitPage.html → Results.html の順番に表示します。




何回繰り返すかというのは、model.pyの【num_rounds】で回数を指定してください。
※詳細はこちら→(準備中)


【page_sequence】で指定したページは、
model.pyの【num_rounds】で指定した回数1回ずつ繰り返されます。
例えば、num_rounds=3としていすると、
Introduction.html → Question.html .html → Feedback1.html → Decision.html → ResultsWaitPage.html → Results.html →(2回目)Introduction.html → Question.html .html → Feedback1.html → Decision.html → ResultsWaitPage.html → Results.html →(3回目)ntroduction.html → Question.html .html → Feedback1.html → Decision.html → ResultsWaitPage.html → Results.html という形で表示されます。


例えば、10回目のラウンドだけ、表示したいページ(html)があれば、
こちらを参照してください→(準備中)。



oTree インストールおよび起動ができている状態で、Pycharmでひらいています。


①画面を構成するhtmlファイル                                                 
templateのプログラム名ファイル直下にある
> 拡張子がhtmlのファイルは、画面にでているソースコードです
ここのファイルをいじると、ブラウザにでてくる文字などが変わります。

 

②画面と内部処理を行うpyファイル                                           
templete直下にある
> 拡張子がpyのファイルは、pythonファイルです
views.py】は、画面で入力された値とのやり取りを表します
※詳細は、2-2【実験】oTree views.py  をみてください。
model.py】は、views.pyでうけとった値を計算したり、データベース(Excel)に格納したりします。
※詳細は、(準備中)ここをみてください。


-----------------------
①のhtmlファイルと②のpyファイルだけで基本的には動きます。
私が作ったときは、再帰処理をしたので、javascriptとCSSファイルを追加しました。
pycharmからではなく、oTreeフォルダの中からで直接メモ帳(sakuraエディタ)つかっていじりました。

③Javascriptファイル                                                 
> 拡張子がjsのファイルは、Javascriptファイルです
今回は、\oTree\_static\globalにjsファイルを置き、①のhtmlファイルの中でパスを指定して読み込ませました。

④CSSファイル                                                            
> 拡張子がcssのファイルは、cssファイルです
画面のデザインだったりを使うときに便利です。
今回は、\oTree\_static\globalにcssファイルを置き、①のhtmlファイルの中でパスを指定して読み込ませました。
 1  2  3  4  5  6  ≫
【お知らせ】
◆お問合せ 88.hakumai.saiko@gmail.com

◆ホームーページ 08 -ゼロハチ-

◆Twitter はじめました。 @zerohachi_008 ゼロハチ
ブログ内検索
スポンサーサイト
カレンダー
04 2018/05 06
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
スポンサーサイト
スポンサーサイト