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