oTree Forum >

Treatment assignment returns None

#1 by cerenay (edited )

Hi, 

I am trying to do simplest balanced treatment assignment based on two conditions and the variables return to None in all my tries. I use the same code that I used thousands of times before but I am thinkig maybe I am a bit rusty so not sure what is happening, really appreciate the help!


class Subsession(BaseSubsession):

    def creating_session(subsession):
        scenario_cycle = itertools.cycle(["S1", "S2", "S3", "S4", "S5", "S6"])
        treatment_cycle = itertools.cycle(["T1", "T2", "T3"])
        for player in subsession.get_players():
            player.assigned_scenario = next(scenario_cycle)
            player.assigned_treatment = next(treatment_cycle)


class Player(BasePlayer):
    assigned_scenario = models.StringField()
    assigned_info_treatment = models.StringField()

#2 by BonnEconLab

It works if you move `def creating_session(subsession)` to the top level, that is, outside `class Subsession(BaseSubsession)`.

(BTW, you use `assigned_treatment` in `creating_session` but `assigned_info_treatment` in `Player`.)

Write a reply

Set forum username