Динамическое заполнение одного поля Django Form на основе выбора в другом поле

У меня есть модель со следующим списком вариантов выбора:

models.py

class Choice_class(models.Model):

    options = (
        ('None', 'none'),
        ('one', 'one'),
        ('two', 'two'),
        ('three', 'three'),
    )

    option_values = (
        ('None', 0),
        ('one', 1),
        ('two', 2),
        ('three', 3),
    )

    user_choice = models.CharField(max_length = 5, choices = options, default = 'None')
    choice_value = models.IntegerField()

и форму следующим образом: forms.py

class Choice_class(ModelForm):

    options = (
        ('None', 'none'),
        ('one', 'one'),
        ('two', 'two'),
        ('three', 'three'),
    )

    option_values = (
        ('None', 0),
        ('one', 1),
        ('two', 2),
        ('three', 3),
    )

    user_choice = models.CharField(max_length = 5, choices = options, default = 'None')
    choice_value = models.IntegerField(default = option_values[#BASED ON USER CHOICE IN FIELD ABOVE] )

Я хочу заполнить поле choice_value значением по умолчанию из option_values на основе того, что пользователь выбирает для поля user_choice.

Я бы не хотел делать это через js (хотя это вариант), потому что мне кажется, что должен быть способ сделать это через фреймворк в той же форме.

Я понимаю, что у меня также есть возможность сделать логику для этого в views.py:

if choice_value == 'None': 
   '''populate with default value based on user_choice as defined by dict in views file etc'''

но я бы предпочел сделать это внутри формы, если это возможно.

Заранее спасибо, если у вас есть какие-либо рекомендации.

Вернуться на верх