Se você não quiser adicionar nenhum código ao formulário (como mencionado nos comentários da resposta do @ shadfc), é certamente possível, aqui estão duas opções.
Primeiro, basta referenciar os campos individualmente no HTML, em vez de todo o formulário de uma vez:
<form action="" method="post">
<ul class="contactList">
<li id="subject" class="contact">{{ form.subject }}</li>
<li id="email" class="contact">{{ form.email }}</li>
<li id="message" class="contact">{{ form.message }}</li>
</ul>
<input type="submit" value="Submit">
</form>
(Observe que eu também mudei para uma lista não classificada .)
Segundo, observe nos documentos sobre saída de formulários como HTML , Django:
A identificação do campo é gerada adicionando 'id_' ao nome do campo. Os atributos e tags de identificação estão incluídos na saída por padrão.
Todos os seus campos de formulário já têm um ID exclusivo . Portanto, você faria referência ao id_subject em seu arquivo CSS para estilizar o campo de assunto . Devo observar que é assim que o formulário se comporta quando você usa o HTML padrão , o que requer apenas a impressão do formulário, não os campos individuais:
<ul class="contactList">
{{ form }} # Will auto-generate HTML with id_subject, id_email, email_message
{{ form.as_ul }} # might also work, haven't tested
</ul>
Veja o link anterior para outras opções ao imprimir formulários (você pode criar tabelas, etc.).
Nota - Eu sei que isso não é o mesmo que adicionar uma classe a cada elemento (se você adicionou um campo ao formulário, você também precisará atualizar o CSS) - mas é fácil o suficiente referenciar todos os campos por id no seu CSS assim:
#id_subject, #id_email, #email_message
{color: red;}