Se non vuoi aggiungerne nessuno codice al modulo (come menzionato nei commenti alla risposta di @ shadfc), è certamente possibile, qui ci sono due opzioni.
Innanzitutto, fai semplicemente riferimento ai campi singolarmente nell'HTML, anziché all'intero modulo contemporaneamente:
<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>
(Nota che l'ho anche cambiato in un elenco non ordinato .)
In secondo luogo, nota nei documenti sull'output di moduli come HTML , Django:
L'ID campo viene generato anteponendo "id_" al nome del campo. Gli attributi e i tag id sono inclusi nell'output per impostazione predefinita.
Tutti i campi del modulo hanno già un ID univoco . Quindi faresti riferimento a id_subject nel tuo file CSS per dare uno stile al campo dell'oggetto . Dovrei notare, questo è come si comporta il modulo quando si prende l' HTML predefinito , che richiede solo la stampa del modulo, non i singoli campi:
<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>
Vedi il link precedente per altre opzioni durante la produzione di moduli (puoi fare tabelle, ecc.).
Nota: mi rendo conto che questo non è lo stesso dell'aggiunta di una classe a ciascun elemento (se hai aggiunto un campo al modulo, dovresti aggiornare anche il CSS) - ma è abbastanza facile fare riferimento a tutti i campi per id nel tuo CSS in questo modo:
#id_subject, #id_email, #email_message
{color: red;}