Forma herhangi bir kod eklemek istemiyorsanız (@ shadfc'nin Cevabına yapılan yorumlarda belirtildiği gibi), kesinlikle mümkündür, işte iki seçenek.
İlk olarak, tek seferde formun tamamı yerine HTML'deki alanlara tek tek başvurursunuz:
<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>
(Ayrıca sıralanmamış bir liste olarak değiştirdiğimi de unutmayın .)
İkinci olarak, formların çıktısını HTML , Django olarak almakla ilgili dokümanlardaki not :
Alan kimliği, Alan adının başına 'id_' eklenerek oluşturulur. İd nitelikleri ve etiketleri varsayılan olarak çıktıya dahil edilir.
Tüm form alanlarınızın zaten benzersiz bir kimliği var . Dolayısıyla , konu alanını biçimlendirmek için CSS dosyanızda id_subject'e başvurursunuz . Unutmamalıyım, varsayılan HTML'yi aldığınızda formun nasıl davrandığı , tek tek alanları değil, yalnızca formu yazdırmayı gerektirir:
<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>
Formların çıktısını alırken diğer seçenekler için önceki bağlantıya bakın (tablolar vb. Yapabilirsiniz).
Not - Bunun her öğeye bir sınıf eklemekle aynı olmadığını anlıyorum (Forma bir alan eklediyseniz, CSS'yi de güncellemeniz gerekir) - ancak tüm alanlara id ile başvurmak yeterince kolaydır CSS'nizde şöyle:
#id_subject, #id_email, #email_message
{color: red;}