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