Eu sei uma forma de fazer, mas não sei se é a melhor solução.
Sobrescrevendo o método __init__() do form, dá fazer isso aqui:
def __init__(self, *args, **kwargs):
super(MeuForm, self).__init__(*args, **kwargs)
for field in self.fields:
field.widget.attrs.update({'readonly':'readonly'})
Assim todos os campos set tornam readonly. Também é uma das formas, tem outras formas de fazer, como por exemplo, extender a classe forms.Form ou forms.ModelForm pra ficar um ReadOnlyForm.