Django: Ändern Sie die DOM-ID auf Formularfeldebene

8

Ich verstehe, dass Django standardmäßig id für jedes Formularfeld beim Rendern mit dem Format id_for_%s automatisch ausfüllt. Man kann das Format ändern, indem man dem Argument auto_id ein anderes Format als Wert für den Form-Konstruktor gibt.

Das ist aber nicht genau das, wonach ich suche. Was ich erreichen möchte, ist die Änderung der ID von nur einem der vielen Felder in meiner Form. Außerdem sollte die Lösung die Verwendung von form = MyForm(request.POST) nicht unterbrechen.

PS. MyForm ist eine Modellform, daher wird jede ID aus dem entsprechenden Modellfeld abgeleitet.

Danke für die Hilfe.

    
tamakisquare 27.10.2011, 00:00
quelle

1 Antwort

15

Das Formular-Framework scheint hier Labels zu erzeugen:

%Vor%

Dies bedeutet, dass Sie Ihr Feld-Widget einfach mit einem "id" -Schlüssel versehen können, um es auf das zu setzen, was Sie möchten.

%Vor%

Oder überschreiben Sie init und setzen Sie die attrs nach der Formularinitialisierung.

Ich sehe nicht, wie dies ein Formular brechen könnte, da das Formular-Framework von django HTML-IDs (diese Daten werden nicht an den Server weitergegeben) nicht bekannt sind.

    
Yuji 'Tomita' Tomita 27.10.2011, 02:28
quelle

Tags und Links