Django Formen: Foreign Key in Hidden-Feld

Meine form:

class PlanForm(forms.ModelForm):    
    owner = forms.ModelChoiceField(label="",
                                  queryset=Profile.objects.all(),
                                  widget=forms.HiddenInput())
    etc...

    class Meta:
        model = Plan

Besitzer, in der Modell, ist ein ForeignKey zu einem Profil.

Wenn ich dieses Formular habe ich den Wert von "Eigentümer" zu werden, ein Profil-Objekt.

Aber wenn das raus kommt auf die form scheint zu enthalten, die Namen das Profil wie dieses:

<input type="hidden" name="owner" value="phil" id="id_owner" />

Wenn das Formular abgeschickt wird und wieder bekommt meine views.py ich versuche, es zu handhaben wie dieser:

    form = PlanForm(request.POST)
    ...
    if form.is_valid():                
        plan = form.save()
        return HttpResponseRedirect('/plans/%s'%plan.id) # Redirect after POST

Allerdings, was ich sehe, ist ein Typ-Fehler bei der Konvertierung, wie Sie es versäumt, drehen Sie die Zeichenfolge "phil" (der name des Benutzer, der gespeichert wurde, in die "Besitzer" - Feld) in einen Int, um Sie in die ForeignKey.

Also, was ist hier Los. Sollte eine ModelForm stellen einen Fremdschlüssel als Zahl und transparent umgehen? Oder Brauch ich zu extrahieren der id mich in dem Eigentümer-Feld des Formulars? Und wenn ja, wie und Wann muss ich die Karte zurück, BEVOR ich versuche, die zur Validierung der form?

  • wie sind Sie mit der Einstellung der Wert der Besitzer, wenn Sie die form. Können wir das erkennen?
InformationsquelleAutor interstar | 2009-03-07
Schreibe einen Kommentar