#1 by pia
Hi all, I want to run an online experiment where I randomize players into groups of two and keep those groups constant over all rounds. For this I use: def creating_session(self): #match participants randomly in round 1 if self.round_number == 1: self.group_randomly() else: self.group_like_round(1) In round X I want the groups to be split in treatment and control group. The difference being them seeing different pages. And I still want to keep the groups the same since round1. I use: def creating_session2(subsession): import itertools pressure = itertools.cycle[(True, False)] if subsession.round_number == 3: for group in subsession.get_groups(): group.page_chat = next(pressure) class TreatmentWaitPage(WaitPage): def is_displayed(player: Player): return player.round_number == 3 @staticmethod def after_all_groups_arrive(subsession): subsession.creating_session2() and class Chat2(Page): timeout_seconds = 300 def is_displayed(player: Player): return ( player.round_number == 4 and player.group.page_chat) class Essay(Page): form_model = 'player' form_fields = ['essay'] timeout_seconds = 300 def is_displayed(player: Player): return ( player.round_number == 4 and not player.group.page_chat) and I set: class Group(BaseGroup): page_chat = models.BooleanField() This results in the error: TypeError: group.page_chat is None. Accessing a null field is generally considered an error. and I also tried it without itertools and just random - same error occurs. If someone has a suggestion how to solve it I would appreciate that. Thank you.