Form doğrulaması başarısız olduğunda .error sınıfını giriş öğelerine nasıl ekleyebilirim (to registration app).django girdi öğesi hatası css sınıfı
cevap
Bu, şablonunuz aracılığıyla tamamen yapılabilir.
Aşağıdaki örnek
<input type="text" class="reg-txt{% if form.fieldname.errors %} errors{% endif %}"/>
Bu görünüm & Django formu kodunuzu değiştirmeden istediğiniz arayüz sağlamak sağlayan inşa size kullanabilirsiniz test etmek istiyorum her form alanı için form şablonunu oluşturmak.
(Geç olsun hiç olmamasından) Sen Kolay şimdi nerede Django Uni Form
ile bunu mümkün olmalıdır
-Sadece formu sınıfına & bir özelliği eklemelerini yeni özelliği Django 1.2 Gitmek güzelsin. Bu özellik "yeni 1,2" notu altında docs belirtilen, ancak django.forms.forms.BoundField.css_classes
de büyü İşte API reference, ve bir örnek bulabilirsiniz:
class MyForm(forms.Form):
required_css_class = "required"
error_css_class = "error"
Ben 1.3 çalıştıran ve bu sınıfların hiçbiri şablon çıktı hiç. Alanı for döngüsünde basit {{field}} ile yapıyorum. Bu işi yapmak için özel bir şey yapmalı mıyım? Sadece tablolar çıktı alırken çalışır mı? – Justin
Tüm formu {{form}} kullanarak çıkarmanız gerekiyor, eğer bu şekilde yaparsanız, formatları (p, tablo ve liste) herhangi birinde sınıfları göreceksiniz. –
@BrianFisher, cevabınıza dayalı olarak, istenen formun/zorunlu sınıfın alınabilmesi için {{form}} kabulünü veya formun tamamında ve hatadaki sınıfların daha iyi kontrol edilmesini istiyorsanız kendi öğelerinizi oluşturmak anlamına mı geliyor? – Chris
sen oluşturmak için hata CSS sınıfı yerleştirmek istiyorsanız giriş widget'ları (değil onların konteynerler), aşağıdaki birinden form sınıfı türetebilirsiniz:
class StyledErrorForm(forms.Form):
def is_valid(self):
ret = forms.Form.is_valid(self)
for f in self.errors:
self.fields[f].widget.attrs.update({'class': self.fields[f].widget.attrs.get('class', '') + ' error'})
return ret
Küçük bir yakalamaya dikkat edin, -, bu alan widget bildirimi (yani, attrs') belirtilen herhangi bir sınıfı geçersiz kılar. Hata sınıfını eklemek için, bu satırı kullanın (biraz korkunç): 'self.fields [f] .widget.attrs.update ({'class': self.fields [f] .widget.attrs.get ('class') , '') + 'error'}) ' – gregoltsov
Teşekkür ederim Gregory, kodumu düzelttim. – Luca
bir Özel Şablon kullanarak ...
Şahsen inşa Django hata classing çözümlerini kullanarak çok şansım olmadı , ve ek olarak Ben, hatalar üzerinde oluşturulmuş 'striptizler' şablon filtresini kullanmaktan hoşlanırım, nasıl olursa olsun nasıl güzelce oluşturulacağını anlayamadığım tüm html listesi öğelerinden kurtulmak isterim.Aşağıdaki özel şablonu 'error_id' olarak sınıflandırmak için kullanıyorum.
@register.filter(is_safe=True)
@stringfilter
def error_id(value):
if value=='':
return ''
else:
return r'<span class="error_id">'+value+'</span>'
kullanarak şablonunda bireysel hataları Render:
{{ form.my_field.errors|striptags|error_id}}
Veya böyle bir şey kullanarak tüm formu işlemek:
<table border="1" cellpadding="5px" align="center">
{% for field in form.visible_fields %}
<tr>
<td> {{ field.label_tag }}: </td>
<td> {{ field }} </td>
<td> {{ field.errors|striptags|error_id }} </td>
</tr>
{% endfor %}
</table>
- 1. Sözdizim öğesi üzerinde CSS sınıfı ekleme
- 2. css: girdi elemanları arasında
- 3. CSS - LESS sınıfı kalıtım
- 4. Date_select'e bir CSS sınıfı ekleme
- 5. dat.gui özel css sınıfı
- 6. css sınıfı seçilmiyor mu?
- 7. Belirli bir CSS sınıfı
- 8. Regex CSS sınıfı
- 9. jQuery Validate() Vurgulama Hatası Girdi Alanları
- 10. Css için Django yükleme bloğu
- 11. uygulanması css sınıfı kullanılarak Html.DisplayFor
- 12. css: hover sözde sınıfı çalışmıyor
- 13. Böyle bir taban sınıfı öğesi şey var
- 14. Netbeans IDE 8.0.2 C++ Girdi/Çıktı Hatası
- 15. Girdi ile veri okurken sözdizimi hatası()
- 16. hatası: girdi bağımsız değişkenlerinin boyutları eşleşmiyor. cvTriangulatePoints
- 17. Girdi Öğesi JavaScript tarafından Popup Penceresinden değiştirildiğinde "onChange" olayını artırın
- 18. Özel düzenleme türü alanına birden çok girdi öğesi ekleme
- 19. jQuery CSS hatası
- 20. web öğesi denetçisi (safari/krom) CSS özellikleri
- 21. Bulunamadı: selenyum webdriver'da css selektör öğesi bulunamıyor
- 22. Form öğesi, Opera'daki CSS dikey hizalamasına uymuyor
- 23. DOM öğesi olmadan css değerini alın
- 24. CSS kuralı Stili ilk liste öğesi
- 25. Şablon sınıfı kullanırken Linker hatası?
- 26. CSS sınıf tanımı içinde çalışmaz <g:HTML> öğesi
- 27. Girdi,
- 28. Django RelatedObjectDoesNotExist hatası
- 29. Django - runserver hatası
- 30. Django uwsgi import hatası
form veya widget'ı yapılabilir bir şey var mı seviye? Bu oldukça ayrıntılı görünüyor, ben her geçersiz giriş alanında bu hata sınıfına sahip olmak istiyorum, textarea, seç ... –