2 Stimmen

Django ModelForm Felder - muss mehr als eine haben?

Ich habe ein Modell, das mehr als 25 Felder hat. Ich möchte ein Formular erstellen, um nur EINES dieser Felder zu bearbeiten. Daher habe ich dies getan:

class My_Model_Form(ModelForm):
    class Meta:
        model = myModel
        fields = ('myField')

Dies gab mir Fehler über Unknown field(s) (i, b, l, o, T) specified for My_Model_Form . Also änderte ich den obigen Text in:

class My_Model_Form(ModelForm):
    class Meta:
        model = myModel
        field = ('myField')

(Ich habe die s de fields ). Dies funktionierte (wie in der runserver Befehl ausgeführt wird), enthält dieses Formular nun jedoch alle Felder aus dem Modell myModel . Die einzige Möglichkeit, das gewünschte Ein-Feld-Formular zu erhalten, besteht in der Verwendung der exclude Schlüsselwort, und Liste alle Felder außer der, die ich will. Das erscheint lächerlich.

Gehe ich das alles falsch an? Gibt es einen besseren/richtigen Weg, dies zu tun?

Danke!

10voto

Tomasz Wysocki Punkte 10546

Sie müssen in Einzelelement-Tupeln ein Komma setzen, da Sie sonst beim Iterieren über fields wird jedes Zeichen der Zeichenkette durchlaufen:

fields = ('myField',)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X