У меня есть класс (forms.form), где у меня есть выбор. Я sh решу, всякий раз, когда я загружаю view_1, что выбор для этого представления - choice_A, а затем, когда я загружаю view_2, выбор для этого представления - choice_B. Поэтому в зависимости от загруженного представления значение выбора изменяется соответственно.
Класс для CreateGameForm (forms.form)
class CreateGame(forms.Form):
game_choices = ([
('choice_A', 'choice_A'),
('choice_B', 'choice_B')
])
game = forms.ChoiceField(choices=game_choices , required=True)
Я пытался заставить его работать с изменением начальное значение, добавив его в игру, а затем в def init добавив его вместе с функцией, которая изменяет начальное значение при изменении view / URL_pattern, но без особой удачи.
Есть идеи?
Использование исходной методологии
class CreateGame(forms.Form):
game_choices = ([
('choice_A', 'choice_A'),
('choice_B', 'choice_B')
])
game = forms.ChoiceField(choices=game_choices , required=True, initial="choice_A")
Мой createView
class CreateGameA(CreateView):
template_name = 'otree/gameA.html'
url_pattern = r"^create_game/gameA/"
def get_initial(self):
initial = super().get_initial()
initial['game'] = 'gameA'
return initial
Редактировать
Убедитесь, что у вас есть FormMixin или используйте CreateView, иначе вы не можете использовать get_initial.