Mam pole wejściowe, które jest renderowane za pomocą szablonu takiego:
<div class="field">
{{ form.city }}
</div>
Który jest renderowany jako:
<div class="field">
<input id="id_city" type="text" name="city" maxlength="100" />
</div>
Teraz przypuśćmy, że chcę dodać autocomplete="off"
atrybut do renderowanego elementu wejściowego, jak mam to zrobić? Albo onclick="xyz()"
albo class="my-special-css-class"
?
django
django-templates
django-forms
django-widget
html
Użytkownik
źródło
źródło
Przepraszam za reklamę, ale niedawno wydałem aplikację ( https://github.com/kmike/django-widget-tweaks ), która sprawia, że takie zadania są jeszcze mniej bolesne, więc projektanci mogą to robić bez dotykania kodu Pythona:
lub alternatywnie
źródło
Jeśli używasz „ModelForm”:
źródło
Jeśli korzystasz
ModelForm
, oprócz możliwości użycia__init__
jako @Artificioo podanego w jego odpowiedzi,widgets
w Meta jest do tego słownik:Odpowiednia dokumentacja
źródło
Nie chciałem używać do tego całej aplikacji. Zamiast tego znalazłem następujący kod tutaj https://blog.joeymasip.com/how-to-add-attributes-to-form-widgets-in-django-templates/
użyj tagu w pliku html
źródło
Spędziłem kilka dni próbując stworzyć szablony formularzy wielokrotnego użytku do tworzenia i aktualizowania modeli w formularzach Django. Zauważ, że używam ModelForm do zmiany lub tworzenia obiektu. Używam również bootstrapu do stylizacji moich formularzy. W przeszłości używałem django_form_tweaks do niektórych formularzy, ale potrzebowałem dostosowania bez dużej zależności od szablonu. Ponieważ mam już jQuery w moim projekcie, zdecydowałem się wykorzystać jego właściwości do stylizacji moich formularzy. Oto kod i może pracować z dowolnym formularzem.
Views.py
Uwaga dotycząca kodu HTML : Używam modalu bootstrap4, aby uniknąć kłopotów związanych z tworzeniem wielu widoków. Może lepiej jest użyć ogólnego CreateView lub UpdateView. Połącz Bootstrap i jqQery
Kod JavaScript pamiętaj, aby załadować to w
$(document).ready(function() { /* ... */});
funkcji.źródło