depois que vc setou o form no controller vc pode ver se ele ja esta preenchido com dados (o que indicaria que é uma edição) e a partir dai falar que o elemento x do form é readonly
exemplo:
if 'form_preenchido':
form.element(_name='nome_elemento')['_readonly']='readonly'
dessa forma o html do elemento selecionado ira ganhar uma tag a mais , a tag de 'readonly' ou vc pode também dar um elemento css para ele ao invés de elementos html