Ich habe was ich denke, sollte ein einfaches Problem sein. Ich habe ein Inline-Modell-Formularset, und ich möchte ein Auswahlfeld mit einem standardmäßig ausgewählten Wert des aktuell angemeldeten Benutzers versehen. In der Ansicht verwende ich die Authentifizierungs-Middleware von Django, so dass es für den Benutzer einfach ist, auf request.user
zuzugreifen.Django: Wie werden Anfangswerte für ein Feld in einem Inline-Modell-Formularsatz festgelegt?
Was ich jedoch nicht herausfinden konnte, ist, wie dieser Benutzer als der standardmäßig ausgewählte Wert in einem Auswahlfeld (ModelChoiceField) mit einer Liste von Benutzern festgelegt wird. Kann mir jemand dabei helfen?
Nicht sicher, wie dies mit dem Inline-Formset funktionieren würde. Ich verwende inlineformset_factory, um mein Formularset zu erstellen und ihm die Formularklasse zu übergeben, keine Instanz. Also instanziiere ich ein Formularobjekt nirgendwo direkt und weiß nicht, wie ich diesen Konstruktorparameter übergeben würde. – Jeff
Hmmm ... Ich glaube, ModelForms wird den 'Standard' Wert annehmen, oder? Und Standard-Formularfelder verwenden Initial, wie du es zeigst, aber soweit ich weiß, gibt es keinen Grund, super() darauf zu gehen. – monkut
Das ist großartig! Ich suchte nach einer Möglichkeit, Daten aus dem Formular an die Ansicht zu senden, damit ich den Status senden kann, der mithilfe des Nachrichtenframeworks angezeigt wird. In dem Formular habe ich das ursprüngliche Schlüsselwort verwendet, und dann in der Ansicht habe ich dies auf validate: cur_key_status = form.cleaned_data ['key_status'] messages.success (Anfrage, cur_key_status) – radtek