Sie können das Widget überschreiben und ein attrs-Wörterbuch mit dem Tab-Index-Set bereitstellen:
Der Tab-Index ist ein Feature des Layouts und es fühlt sich so an, als ob es wirklich in die Vorlage gehört, nicht in die Ansicht . Hier ist ein direkter Ansatz, der dies erreicht:
Definieren Sie zuerst einen benutzerdefinierten Vorlagenfilter fügt dem Widget eines gebundenen Feldes ein tabindex
-Attribut hinzu:
Fügen Sie dann |tabindex:n
zu den Feldern in der Vorlage hinzu. Zum Beispiel:
Alles an Alex, aber nur um die Lösung auszufüllen:
Wenn Sie die automatische Formfeldgenerierung von django (Widgets) verwenden, vergessen Sie die Vorlagen, die Sie in der folgenden Formulardefinition verwenden müssen:
%Vor%wird zu:
%Vor%Wenn Sie jedoch bereit sind, die Widgets aufzugeben und die Präsentation in der Vorlage beizubehalten, können Sie dies auch folgendermaßen tun:
%Vor%Ich bin zu letzterem geneigt.
Sie können dafür auch django-widget-tweaks verwenden.
Verwendung von render_field (ich bevorzuge diese Methode):
%Vor%Alternativ dazu verwenden Sie den attr-Filter:
%Vor% Alles an John, aber {{form.email.data|default:''}}
scheint alle im Formular angegebenen Anfangsdaten zu ignorieren. Am Ende habe ich etwas jQuery benutzt, um diesen schmerzhaften Django-Mangel zu umgehen:
kombiniert mit {{ form.email }}
gibt das Eingabefeld aus und fügt einen Tabindex ohne all das Widget / attr Mumbo-Jumbo hinzu, was besonders unangenehm ist, wenn man ein ModelForm verwendet.
Tags und Links django