Frage

Ich habe eine m2m Feld in einer Klasse, und ein durch Tabelle. Ich bin nicht Tabelle der Liste der Elemente aus dem durch Tabelle zu speichern. wenn ich eine Multi wählen Form haben, wie unten, und ich möchte in der Lage sein, alle die ausgewählten Elemente zu speichern, wie soll ich es tun ??

Meine Modellform sieht wie folgt aus:

class ClassroomForm(ModelForm):
    class Meta:
          model = Classroom
          fields = ['classname','members','private']

    def __init__(self, *args, **kwargs):
                creator = kwargs.pop('user')
  super(ClassroomForm, self).__init__(*args, **kwargs)
  relations = Relations.objects.filter(initiated_by = creator)
  self.fields["members"].queryset = \
       User.objects.filter(pk__in=[r.follow.pk for r in relations])

und meine speichern Methode wie folgt:

def save_classroom(request):
   classroom_instance = Classroom()
   if request.method == 'POST':
        form = ClassroomForm(request.POST, request.FILES, user = request.user) 
        if form.is_valid():
           new_obj = form.save(commit=False)
           new_obj.user = request.user 
           new_obj.save()
           membership = Membership(member = HERE SELECTED ITEMS FROM FORM,classroom=new_obj)

           membership.save() 

Wie kann dies geschehen? Dank!

War es hilfreich?

Lösung

Sieht aus wie Sie haben Sie Frage dupliziert. Ich habe Antwort hier: Django m2m Form "durch" Tabelle speichern

Andere Tipps

Django sollte wie jedes andere Modell Form many-to-many ModelForms behandeln.

  

Wenn Sie eine einfache save () auf einem Formular verwenden, werden alle Daten - einschließlich many-to-many-Daten -. Ohne die Notwendigkeit zusätzlicher Methodenaufrufe gespeichert

Referenz:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top