#1 by nizipzi (edited )
Dear All,
I am new to oTree and I am struggeling since a while with flexibilizing choices in a dropdown menu of a form field.
More, concretely I would like to shuffle the order of the options in the dropdown menu such that choice options are presented to each player in random order.
Based on the docs I tried the following in init.py
class Player(BasePlayer):
institutions = models.StringField()
def institutions_choices(player):
choices = ["a", "b", "c", "d"]
random.shuffle(choices)
return choices
# PAGES
class SelectInstitution_all(Page):
form_model = "player"
form_fields = ["institutions"]
page_sequence = [SelectInstitution_all]
and in html
{% formfield player.institutions %}
Unfortunately no dropdown form field is returned. Can someone help?
Thanks a lot for your help!
#2 by xuxu1989
Hi,
I'm not sure which version of otree you are using. If you are using otree<5, you need to move the function institutions_choices to be inside the class SelectInstitution_all. If you are using otree>=5, you need to take the function institutions_choices outside the class Player (delete the indention), and {% formfield player.institutions %} should be {{ formfield player.institutions }}.