If you output the fields yourself, you are responsible for ensuring
that the value, name, id - everything, in fact - is correct. In this
case, when you are outputting your textarea manually, you are omitting
the value, either from the initial value passed in, or from the
submitted data when redisplaying a bound form that has errors.
So, you can either do all that work yourself for each field, or you
can allow django to display the field, and manipulate django so that
it creates your HTML as you like it. For instance, you can pass
additional attributes to the widget used to render the field, read
more about widgets in the docs:
https://docs.djangoproject.com/en/1.5/ref/forms/widgets/
Cheers
Tom