from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, ) import random author = '' doc = """ urns """ class Constants(BaseConstants): name_in_url = 'urnsC' players_per_group = None tasks = ['PageOneC', 'PageTwoC', 'PageFourC'] num_rounds = len(tasks)+1 instructions_template = 'urns1/InstructionsC.html' completion_codes = ['7FQAS8GDJ', 'EA3XRF64X', 'GZ5TT0ZQW', 'M5YMRN97X', 'HZ602303O', 'FG4CZQ895', 'EZM5W08RO', 'OCWCBBZO8', '0MVPCFX6E', 'X3H875DRI', 'K7KPKYFRT', '7RDFD9DUJ', 'JP087F2TD', 'FDBXQWVS7', 'ERCWII53D', 'KMFNTK28S', 'M06E49B2M', 'UE6G63M60', '16BZFQZFR', 'SC7DCAM7F', 'NYTMOL2ZV', 'GBO9DKGOJ', 'HM8H2IV18', 'S3BHKGX5I', 'IOS3YBU3U', 'YZ0ATBEGG', 'Q9FFEK7S1', 'AKYJEC887', 'BS9T4R1RS', 'IF3F0QEA6', '4FG1V315G', 'YCOO1Z97G', 'BSLCXXHIG', 'IL3HC53DI', 'J198IBRBY', 'IIWC6LOIG', 'U74UAR78Y', 'YDCO7F2RI', 'XKQF0TZMU', 'ACPA06JCD', 'TPPCO2N0U', 'KVF0FE6XA', '6M3CLGMXU', 'YSZ5UPDOU', 'B24Y5IZ5O', 'XX0GQ3NKG', '83OJOJJ0N', '9D7BDYPNL', 'RW29P7LJG', '9MH6UAGTC', '3KVZ83J5I', 'IFZ765UCW', 'NUYZSCR50', 'JCEBD9DRA', 'L0VHWNYJA', '6079K6KTK', 'SWAXZP6Z9', 'A5D0WUK8J', '9M2F0L8QE', 'RUA8G81Z1', '31G5DDWO3', 'UXHVPNP4F', 'GX0WUOTVJ', '3O6WVFPN9', '7MEEE6EDR', 'TGICKYHOT', 'VUAQPM4X6', 'AR6MWSIFI', 'KQF0N8IPQ', 'R246GPAES', 'Y07TYI68R', '50SY9SPON', 'BD5GKP6JY', 'LU4OY73K8', '1FBAUH8N1', 'NYDC7XPCM', 'OBK0F2LVS', 'X9AZ4RPNW', 'YRQTWG0UI', 'WJV4ACLIY', 'M7SWLU22C', 'A1HKYDNJQ', '281QFSHHD', 'EHBP40MZI', '79VO2SHOS', '1L0XIPREB', 'PZFG0NZ9I', 'AXSJM2G5S', 'WPRDPJEB6', 'AVP2RGESJ', '8P99GU892', 'C2MWJ4LQK', 'TQJZN38BL', '9AJEOI3FI', '41ZY3CTMC', 'SVLV8VJWT', '8WW1W51UD', 'LC8VV1ILJ', '08INCQ3YG', '85UKG8TRM', 'USN2ZCH1L', 'U8C4L8O00', '16TP7TOHU', 'OCHAKJX4H', 'RWL7BOA0E', '1B0TQ8UXT', 'AI11JNT7H', '0FWA9F9PK', 'XGH964R95', 'GBCRFYG5S', 'VGN60BTEU', 'ZJJXOOU6W', 'MEYTWLDYO', 'GY29ZR7ZR', '3X9HXI4O0', 'E3F1DW0DD', 'Q7VNQHHUX', 'V71PNDWNV', 'MTZ5NS1UY', 'CBWA82ERK', '8WZC2H3IQ', '7ZPE9LEE0', 'UHV9XNK6X', 'MGDZD2ZUU', 'G2K82B6YO', 'ZDUG15DVQ', '1AQDV806G', 'GGND379VW', '9RCAGJK4R', '46HDVKI7K', 'ML45WGUQT', '5BED4RU6F', '1I98X78AM', 'HBQ0VE164', 'MGXI2KAPR', '4NCHNLEB3', 'JUROUMMVN', 'J1UD5BUUD', 'JM7Z09NG4', 'HDVMAA6MW', '0ZWC5467F', 'C3OVE7ERR', '7E6I9JOCH', 'ZCUCVKNHT', '4P8A7G787', 'LQ3RR8NVN', 'IL6BATFUV', 'HLS0Y6F75', 'MA6B5R7MD', 'GS0BR5OBC', 'VXZHQK1QO', 'RG0P9980H', 'QXNZA8QN9', 'N6OON6VDW', '1ZL2TWYH7', 'YAH05OHM3', 'AICYQPY83', 'NIUTFGIUC', '2QX01XSJX', 'ND3UKC3C6', 'FZD8IV1GW', '58A72VRGN', 'I2YB8WNU1', 'EOY7CONOI', 'YMHMJTUZ3', 'YYQGR04JS', '29U21GIQW', 'RQY79BR86', 'H9CZGMILZ', '90KBSN0YE', 'W25P4EJS4', 'M0RLK0OMB', 'YKLRB8FLI', 'B6J3LJ73U', 'T4RFRQ9AF', 'QKXVA4BNT', 'KY7E7NRQL', 'Y9XPAANQ9', 'EEV7ENMP8', 'AMH6NN1VV', '0QTVHKVZT', 'UK3F1YRMA', 'TQW7I5G5E', 'DXJ8ZYWD7', 'DF42TE89L', 'GBVU0Y4LG', 'CVOU3VELF', '4W08ILKM4', '5WT4BJBPJ', 'SRT8XGPXP', 'KNOFZ0KOA', 'PC0NG6BZ8', 'D1IH6ERD8', 'I1OR2ZX0Y', 'LBDTG2QN1', 'G8VWS866G', 'U15OBZXD1', '9J6BNS2RJ', '7BP25HMU0', 'BM0USKHJH', 'O1Z8Q4UDW', '9ER09RBJF', 'LJ3X2RF59', 'U8ZT1F4MB', 'X11CE81KU', 'GVYUSA1L9', 'ECAG5G7PG', 'JA7WJI1WY', 'NSD14D29L', '690CARLM9', 'P6C0BAMG8', '0LUUZPM3S', '6LIFWQUVO', 'CCOR4F9IJ', 'APD85ERB8', 'WQMKTR62O', 'OBWHS69ZD', '7HKXPHO1O', 'JJF8VTE20', 'TA0BGDL0Y', '6185KEFM0', 'EHXN2WFTV', 'LBD27IK25', 'KL7JP0U11', '173YOBJ0V', '16HRPT23M', 'ALAXCLIFS', 'H59QQ153U', 'AMTHQ676S', 'T61OQ9OBX', 'YJQJXZ8WZ', 'G8LRV2X0A', 'PAQ0QUXCM', 'S85EG61S6', 'SZLOBVO9T', '0YFXRGTVG', 'FWYJFJF04', '4SPT2P74L', '83RNGNHUL', 'TTRJ2L4Q2', 'JTHZ2ORNV', 'OY9TEXG82', '1DL4J94AK', 'CW7T0E256', 'Q25O5CXIB', 'M2MZLKQ4F', 'P9DPZJRW0', 'G1IJ5RY1N', 'QW1R8J15T', 'PRGFG9SJI', 'IYMK03MCD', 'E47IS5615', '4EWUOLYCL', 'Q7EB08S3C', '5I91UTXE2', 'KSC6BZTVV', '4MD0IXXEU', 'G8J9EST2V', 'VL48LGLUL', 'D2UFP47YR', '2LEKLAFHF', 'NO8IL3DJ4', 'KS9L5RLWD', 'JC7UXYZ5O', 'CGEI142I8', 'XHH80TEKG', 'BN30Y1N67', '9GXYGMC0N', '29LY3PZ3S', 'L9B6YI9MI', 'XGNJBH20S', 'MXFHJ9N5K', 'FHZBOQME8', 'O1KUS58DE', '43ENMQYS1', 'F97XUEUFZ', '6RGHW9RRA', 'UQW440SIA', '3NLA25CMP', 'B9MYH7PRX', 'RMPY1VGX2', 'AD7VOYKJF', 'TVW88MPP0', 'RFMYJRTS1', 'H8OFA10T1', 'S6OXGI77R', '4EOAIMYZD', '6C55PKO5B', '9XJI5RHW2', 'ALVIC0MGW', '0X032DIY4', '7KK3CUNVV', 'BW440OBO0', 'X2ZNHR7N3', '9WS5ES8IR', '27FNECY5L', 'AAWWZB2W8', 'S2PSV8Y2X', '2IAJM4TPY', 'EYZH3B7A9', '4EV7A2SEQ', 'B0Z62K4PI', '5MHV3FRZN', 'RWGSHEPWA', '5Y0HPVHZ4', 'U7SLI8QYC', 'KAVN3JK4N', '4GW33LMYF', 'YLWA9YTJ3', 'WUPC0M8NE', 'X45FZXGTF', 'D0TQXU44E', 'S3UILZ5JN', 'FHNDC1C7B', 'UJ0KY00L4', 'T6EORNS16', 'PO62ONKD4', 'BO078ELSA', 'L0GND11XN', 'XUCJSDW1T', 'X99OQIX8Z', 'W4TA1WK65', 'WWZBQ22I4', 'S2WLGSQH9', 'KENP6YT7E', '5IFFCIUP6', 'VY0B7Q5X5', '3R38WN0D6', 'D4OIJ3U4S', 'P89LMESGB', 'DNGOKODJ5', 'GRMRDGTX1', '74GBXVM1D', '46TFORAO0', 'DL84HM9AR', 'H4TPHOUEM', 'JTIXLNIY6', '1YFLYVDUD', 'Q4PW1R8ES', 'ELKR529X1', 'DT3CM655X', 'Z8R0PO70L', 'B5U2JS290', 'Q9BVPE8NO', '5XUWSVU3Y', 'BW4M6ZIXU', 'ECUHZ8GFO', 'I87OECD0O', '20KD4BED5', 'CPS78V85G', 'Z3VNA1K4S', 'Q4TIAEAZS', '61TJ9KSTG', '0VWHLYMIO', 'AYJ59L4NP', '2700XE0LY', '32AM630EE', 'LL8SQ9NQS', '8RQZB6FBV', '1DRPOA2YA', 'JYHMST7RF', 'MGPTSUBCY', 'EOWRND23Z', '36WCA8NFT', 'K4BXT5RQJ', 'IXFQHY208', '83ZUTCJAA', 'GZL4E57RG', 'UG9UTGTPS', '579C1YS4X', 'PTO3GQ6OW', 'O3EVFNJBV', 'BW3GYMYIP', 'V2L24X7PD', 'H3CSHY34H', 'AYXSIJONX', '1EXJP957I', 'SLPSJS9IP', 'T60QSR9K5', '277CMVQXL', 'QC8BRF1WZ', 'EU315WTES', 'J45K889JK', '411D5T93P', 'C4DLD9TRO', '3O2APN0E2', 'JY4IGLXQX', 'QUZVMI0RJ', 'UJ31C3A1G', 'ZVE6UU464', 'HB9LHGSKH', 'JYFWIWK0X', 'BZVXDDLDW', 'HTLSESPRW', '7OC87H910', '6TCA5MTM1', 'DI4JBEPW0', 'C549R0DR0', 'UWP5BA45Z', 'U8AJ1QM9P', 'KNP5E6ZQ6', 'S2Y4V3JDF', 'UK1LJZATD', '6Y0CDWOS1', 'IF0M2PX00', '1KAJY444B', 'D406DC31V', '7BGIZCW69', 'M3YR1QSUB', 'IT7JZQ8BP', 'EE42WOEUZ', 'EFOVXUH0I', 'I31SOENBB', 'TYX0Z0SHH', '909SCNA1F', '05VUDIZWF', 'JDZ4NN76Q', 'FUS0CJ3PK', '74G4IOTTK', 'FI997G03X', 'RMUMXP1GJ', 'Z68FFOY2K', 'TJJGNTKGZ', 'CC9R711SF', 'IU1T84HKH', 'CXNMUUUQF', 'HD8MEEE63', 'IJQ4P4CKA', 'UDDU74NV3', 'OTYF77XKZ', 'VQNAPZW87', 'ZVHPXUC3H', 'X5YTX2P0I', '700OKL39T', 'HDURVCF7G', 'K735CM0OC', '1TSRNB66C', 'ZZCTKAOKP', '5MPYO9SDY', 'RESMZE7MV', 'AL0ER25IO', '526NCCWJP', 'BKBOCAOVS', 'P66LWI4G3', 'RVZ7DNM9A', '25SQPJOG8', 'LHNXA0CDH', 'HZ8IJNBQ2', 'S1EPVWZ8M', '1M8BK12AB', 'MLP0XR6U3', '06IVOO5G6', 'K06VGLUVS', '508NRWYYR', '8UUQ0O13T', '40PI8EUFR', 'LCQNPJFKN', '6NVY3466U', 'O8FD1VITX', 'WT09PH087', 'GTAZJURC9', '07R0AMX4B', '4NQOLNOJ8', '61SIIX3TD', '9R9R93FJU', 'ABHE1WABS', 'THMIZRN6M', 'RX27QR509', 'AQ7WH25TR', 'RJUAZMIYI', 'NPY7SZCWK', 'TP2MI20Q5', '82VQPLLLP', 'TSD90D3HI', '2Q4ZW65A2', 'KGCJBWZDV', 'C7RRDY3SE', 'RK7LZFNDB', 'HEN4QZCD9', 'M4A7ZJAW4', 'S2PJH1YBN', 'TFEEVMZ8H', 'GYUVH1BKJ', 'MQ4EZLRLM', 'YNJWSK0X8', 'I9MK6540N', '7PMP87KMP', 'R80NMDP1U', 'CYGWAAAQ7', 'T8DN59R7E', 'LTCKMYG9L', 'Y2T1SFHLM', 'OM3RCY0EV'] class Subsession(BaseSubsession): def creating_session(self): if self.round_number == 2: for p in self.get_players(): round_numbers = list(range(2, Constants.num_rounds+1)) random.shuffle(round_numbers) p.participant.vars['task_rounds_urn1'] = dict(zip(['PageOneC', 'PageTwoC', 'PageFourC'], round_numbers)) for player in self.get_players(): player.completion_code = self.my_function() player.participant.vars['generated_code'] = player.completion_code def my_function(self): return "".join((random.choices(Constants.completion_codes))) class Group(BaseGroup): pass class Player(BasePlayer): def true_false_1_choices(self): choices = ['TRUE', 'FALSE'] random.shuffle(choices) return choices def true_false_2_choices(self): choices = ['TRUE', 'FALSE'] random.shuffle(choices) return choices def true_false_3_choices(self): choices = ['TRUE', 'FALSE'] random.shuffle(choices) return choices def true_false_7_choices(self): choices = ['TRUE', 'FALSE'] random.shuffle(choices) return choices def urn_choice_red_2_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def urn_choice_blue_2_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def urn_choice_red_3_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def urn_choice_blue_3_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def urn_choice_red_4_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def urn_choice_blue_4_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def social_info_2_R_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def social_info_2_B_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def social_info_3_RR_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def social_info_3_RB_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def social_info_3_BR_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def social_info_3_BB_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def social_info_4_RRR_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def social_info_4_BBB_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def social_info_4_RRB_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def social_info_4_BBR_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def social_info_4_RBR_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def social_info_4_BRB_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def social_info_4_BRR_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def social_info_4_RBB_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def urn_choice_position1_red_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def urn_choice_position1_blue_choices(self): choices = ['Red urn', 'Blue urn'] random.shuffle(choices) return choices def information_channel_2_choices(self): choices = ['Draw a ball from the actual urn selected for your 4-member group in this round', 'See the group urn guess by the player in position 1'] random.shuffle(choices) return choices def information_channel_3_choices(self): choices = ['Draw a ball from the actual urn selected for your 4-member group in this round', 'See the respective group urn guesses by players in position 1 and position 2'] random.shuffle(choices) return choices def information_channel_4_choices(self): choices = ['Draw a ball from the actual urn selected for your 4-member group in this round', 'See the respective group urn guesses by players in position 1, position 2, and position 3'] random.shuffle(choices) return choices information_channel_2 = models.StringField( choices=[ 'Draw a ball from the actual urn selected for your 4-member group in this round', 'See the group urn guess by the player in position 1'], widget=widgets.RadioSelect ) information_channel_3 = models.StringField( choices=[ 'Draw a ball from the actual urn selected for your 4-member group in this round', 'See the respective group urn guesses by players in position 1 and position 2'], widget=widgets.RadioSelect ) information_channel_4 = models.StringField( choices=[ 'Draw a ball from the actual urn selected for your 4-member group in this round', 'See the respective group urn guesses by players in position 1, position 2, and position 3'], widget=widgets.RadioSelect ) urn_choice_red_2 = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...one ball has been randomly drawn from the actual group urn and it is red:' ) urn_choice_blue_2 = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...one ball has been randomly drawn from the actual group urn and it is blue:' ) urn_choice_red_3 = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...one ball has been randomly drawn from the actual group urn and it is red:' ) urn_choice_blue_3 = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...one ball has been randomly drawn from the actual group urn and it is blue:' ) urn_choice_red_4 = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...one ball has been randomly drawn from the actual group urn and it is red:' ) urn_choice_blue_4 = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...one ball has been randomly drawn from the actual group urn and it is blue:' ) urn_choice_position1_red = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...one ball has been randomly drawn from the actual group urn and it is red:' ) urn_choice_position1_blue = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...one ball has been randomly drawn from the actual group urn and it is blue:' ) social_info_2_R = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...the player in position 1 has guessed the Red urn?' ) social_info_2_B = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...the player in position 1 has guessed the Blue urn?' ) social_info_3_RR = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...players in position 1 and position 2 have respectively guessed Red urn; and Red urn?' ) social_info_3_RB = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...players in position 1 and position 2 have respectively guessed Red urn; and Blue urn?' ) social_info_3_BR = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...players in position 1 and position 2 have respectively guessed Blue urn; and Red urn?' ) social_info_3_BB = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...players in position 1 and position 2 have respectively guessed Blue urn; and Blue urn?' ) social_info_4_RRR = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...players in position 1, position 2, and position 3 have respectively guessed Red urn; Red urn,' ' and Red urn?' ) social_info_4_RRB = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...players in position 1, position 2, and position 3 have respectively guessed Red urn; Red urn,' ' and Blue urn?' ) social_info_4_RBR = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...players in position 1, position 2, and position 3 have respectively guessed Red urn; Blue urn,' ' and Red urn?' ) social_info_4_BRR = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...players in position 1, position 2, and position 3 have respectively guessed Blue urn; Red urn,' ' and Red urn?' ) social_info_4_BBB = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...players in position 1, position 2, and position 3 have respectively guessed Blue urn; Blue urn,' ' and Blue urn?' ) social_info_4_BBR = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...players in position 1, position 2, and position 3 have respectively guessed Blue urn; Blue urn,' ' and Red urn?' ) social_info_4_BRB = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...players in position 1, position 2, and position 3 have respectively guessed Blue urn; Red urn,' ' and Blue urn?' ) social_info_4_RBB = models.StringField( choices=[ 'Red urn', 'Blue urn'], widget=widgets.RadioSelect, label='...players in position 1, position 2, and position 3 have respectively guessed Red urn; Blue urn,' ' and Blue urn?' ) true_false_1 = models.StringField( choices=[ 'TRUE', 'FALSE'], widget=widgets.RadioSelect, label='The actual group urn selected in each round is equally likely to be “Red” or “Blue”.' ' (additional $0.20 to your bonus if correct)' ) true_false_2 = models.StringField( choices=[ 'TRUE', 'FALSE'], widget=widgets.RadioSelect, label='The other 3 participants in your group face the same problem as you: guessing the selected group' ' urn in every round. (additional $0.20 to your bonus if correct)' ) true_false_3 = models.StringField( choices=[ 'TRUE', 'FALSE'], widget=widgets.RadioSelect, label='For a given round, the randomly selected group urn is the same for all members of your 4-member group.' ' (additional $0.20 to your bonus if correct)' ) true_false_7 = models.StringField( choices=[ 'TRUE', 'FALSE'], widget=widgets.RadioSelect, label='The “Red” urn always contains two red balls and one blue ball. The “Blue” urn always contains two ' 'blue balls and one red ball. (additional $0.20 to your bonus if correct)' ) answer_1 = models.IntegerField( min=0, label='There were 20 wolves in a forest. All wolves but 7 were hunted. How many wolves remain in the forest?' ) answer_2 = models.IntegerField( min=0, label='10 machines make 10 toys in 5 minutes. In how many minutes would 20 machines make 20 toys?' ) answer_3 = models.CurrencyField( min=0, label='The price of a $100 wrist watch was reduced by another 10 percent. What is the current price of the' ' wrist watch?' ) completion_code = models.StringField()