Jeśli nie chcesz dodawać żadnego kodu do formularza (jak wspomniano w komentarzach do odpowiedzi @ shadfc), z pewnością jest to możliwe, oto dwie opcje.
Po pierwsze, odwołujesz się do poszczególnych pól w kodzie HTML, a nie do całego formularza na raz:
<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>
(Zwróć uwagę, że zmieniłem ją również na listę niesortowaną ).
Po drugie, zwróć uwagę w dokumentach na tworzenie formularzy jako HTML , Django:
Identyfikator pola jest generowany przez dołączenie „id_” do nazwy pola. Atrybuty i tagi id są domyślnie uwzględniane w danych wyjściowych.
Wszystkie pola formularza mają już unikalny identyfikator . Więc możesz odwołać się do id_subject w pliku CSS, aby nadać styl polu tematu . Powinienem zauważyć, że tak zachowuje się formularz, gdy bierzesz domyślny HTML, który wymaga tylko wydrukowania formularza, a nie poszczególnych pól:
<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>
Zobacz poprzedni link, aby uzyskać inne opcje podczas tworzenia formularzy (możesz tworzyć tabele itp.).
Uwaga - zdaję sobie sprawę, że to nie to samo, co dodanie klasy do każdego elementu (jeśli dodałeś pole do formularza, musisz również zaktualizować CSS) - ale łatwo jest odwołać się do wszystkich pól według identyfikatora w swoim CSS w ten sposób:
#id_subject, #id_email, #email_message
{color: red;}