Если вы не хотите добавлять какой-либо код в форму (как упоминалось в комментариях к ответу @ shadfc), это, безусловно, возможно, здесь есть два варианта.
Во-первых, вы просто ссылаетесь на поля индивидуально в HTML, а не на всю форму сразу:
<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>
(Обратите внимание, что я также изменил его в несортированный список .)
Во-вторых, обратите внимание на документацию по выводу форм как HTML , Django:
Идентификатор поля генерируется путем добавления 'id_' к имени поля. Атрибуты и теги id включены в вывод по умолчанию.
Все поля формы уже имеют уникальный идентификатор . Таким образом, вы должны ссылаться на id_subject в вашем CSS-файле для стилизации предметного поля. Должен заметить, что вот как ведет себя форма, когда вы берете HTML по умолчанию , для чего требуется просто напечатать форму, а не отдельные поля:
<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>
Смотрите предыдущую ссылку для других опций при выводе форм (вы можете сделать таблицы и т. Д.).
Примечание. Я понимаю, что это не то же самое, что добавить класс к каждому элементу (если вы добавили поле в форму, вам также необходимо обновить CSS), - но достаточно просто ссылаться на все поля по идентификатору. в вашем CSS вот так:
#id_subject, #id_email, #email_message
{color: red;}