Beschränke Djangos inlineformset_factory, um nur neue Objekte zu erstellen

8

Ich verwende djangos Inline-Formset-Factory. Um das Beispiel in den Dokumenten zu verwenden,

%Vor%

erstellt ein Inline-Formset zum Bearbeiten von Büchern durch einen bestimmten Autor.

Ich möchte ein Formularset erstellen, mit dem Benutzer nur neue Bücher von diesem Autor hinzufügen, nicht aber vorhandene Bücher bearbeiten können. Gibt es eine einfache Möglichkeit, inlineformset_factory dazu zu verwenden?

    
Alasdair 01.03.2010, 11:53
quelle

3 Antworten

6

inlineformset_factory verwendet ein Formset kwarg, das standardmäßig BaseInlineFormSet verwendet. BaseInlineFormSet-Unterklassen BaseModelFormSet, das eine get_queryset-Methode definiert. Wenn Sie eine BaseInlineFormSet-Unterklasse erstellen und get_queryset überschreiben, um EmptyQuerySet () zurückzugeben, sollten Sie das bekommen, wonach Sie suchen. Im obigen Beispiel würde es dann so aussehen:

%Vor%     
Jeremy Lewis 01.03.2011 11:42
quelle
1

Basierend auf Jeremy Lewis und wenn Sie BaseInlineFormSet nicht ableiten möchten, können Sie Ihrem BookFormSet einfach einen leeren queryset-Parameter geben.

Siehe Pseudo (ungetestet) Django 1.6 Codebeispiel:

%Vor%     
Andre Miras 06.12.2013 09:44
quelle
0

Die Antwort finden Sie in der Dokumentation . Geben Sie dem FormSet keine Instanz. Aus dem Dokument:

%Vor%

Sie können die Ansicht dann wie folgt erstellen:

%Vor%

Ich hoffe, es hilft.

    
user268157 10.05.2011 05:31
quelle

Tags und Links