В Django 1.8, то ChoiceField
«s choices
аргумента может принимать вызываемый:Как можно выбрать ChoiceField.choices, какие варианты возврата?
def get_choices():
return [(1, "one"), (2, "two")]
class MyForm(forms.Form):
my_choice_field = forms.ChoiceField(choices=get_choices)
В приведенном выше примере, get_choices()
всегда возвращает тот же самый выбор. Тем не менее, возможность назначить вызываемый choices
не имеет большого смысла, если только вызывающий код не знает что-то вроде, скажем, идентификатора объекта, каждый раз, когда он вызывается. Как я могу передать ему такую вещь?
Ваш метод поставки 'get_choices()' не определен нигде. – jnns
@jnns Определяется в вопросе – Anass
Да, вы правы. Но я нахожу очень запутанным и ненужным иметь эту функцию там, если она никогда не вызывается и фактически перезаписывается в '__init__'. – jnns