Bearbeiten Sie die gegenüberliegende Seite einer viele zu viele Beziehung mit django generische Form

StackOverflow https://stackoverflow.com/questions/2549651

Frage

Ich habe zwei Modelle:

 class Actor(models.Model):
     name = models.CharField(max_length=30, unique = True)
     event = models.ManyToManyField(Event, blank=True, null=True)

 class Event(models.Model):
     name = models.CharField(max_length=30, unique = True)
     long_description = models.TextField(blank=True, null=True)

In einer früheren Frage: Django Form 2 Verknüpfung von vielen Modellen zu viele Feld , habe ich eine EventForm mit einer Speicherfunktion:

class EventForm(forms.ModelForm):
      class Meta:
            model = Event

      def save(self, commit=True):
            instance = forms.ModelForm.save(self)
            instance.actors_set.clear()
            for actor in self.cleaned_data['actors']:
                instance.actors_set.add(actors)
            return instance

Die erlaubte mich m2m Links von der anderen Seite der definierten m2m Verbindung hinzuzufügen.

Jetzt möchte ich den Eintrag bearbeiten. Ich habe eine allgemeine-Funktion mit:

def generic_edit(request, modelname, object_id):
       modelname = modelname.lower()
       form_class = form_dict[modelname]
       return update_object(request,
            form_class = form_class,
            object_id = object_id,
            template_name = 'createdit.html'
       )

aber dies zieht all die Informationen mit Ausnahme des many-to-many-Auswahlen auf dieses Objekt gespeichert.

Ich glaube, ich brauche etwas ähnliches wie dies zu tun: Bearbeiten von sowohl Seiten von M2M in Admin-Seite , aber ich habe es nicht herausgefunden.

Wie verwende ich die generische update_object zu bearbeiten, die andere Seite von many-to-many-Link?

War es hilfreich?

Lösung

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