Como definir opções dinamicamente com o Django choicefield?

Eu quero definir opções em dinâmico.

Usei o método __set_choices, mas, quando o método request é POST, o método is_valid sempre retorna False.

if request.method=='POST':
 _form = MyForm(request.POST)
 if _form.is_valid():
   #something to do