2010-03-14 11 views
5

Ich erstelle ein Formularset, aber es scheint es mit allen vorhandenen Daten in der Tabelle für das Objekt zu füllen. Ich kann nicht herausfinden, wie man mit einem leeren Formularsatz beginnt; Der einzige Weg scheint zu sein, alle Daten aus der Tabelle zu löschen, aber das ist eindeutig keine Option.Wie erstelle ich ein leeres Django-Formset mit modelformset_factory?

Ich werde Code bei Bedarf (aber es gibt viele davon, so zu wissen, was relevant ist, ist knifflig).

Antwort

0

Es scheint, dass es nicht möglich ist, das Verhalten des Model Formsets zu ändern. Als Lösung habe ich die Datenstruktur so geändert, dass die Daten, die ich bearbeiten möchte, nach einem anderen Typ gruppiert sind. Stattdessen habe ich inlineformset_factory verwendet.

9

geben Sie einen Parameter queryset = Model.objects.none() beim Erstellen des Objekts.

1

Nach Arihant Antwort, habe ich so etwas wie dieses, das funktioniert:

class TagCreateFormSet(BaseModelFormSet): 
    def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None, 
      queryset=None, **kwargs): 
     queryset = Tag.objects.none() 
     super(TagCreateFormSet, self).__init__(data, files, 
      auto_id, prefix, queryset, **kwargs)