J'ai Publication
s et Author
s. Depuis l'ordre des questions de Author
(le professeur ne veut pas figurer après le stagiaire qui a contribué des données triviales), je défini un modèle sur mesure many-to-many:Django: enregistrer un ModelForm avec des modèles personnalisés plusieurs-à-plusieurs
class Authorship(models.Model):
author = models.ForeignKey("Author")
publication = models.ForeignKey("Publication")
ordering = models.IntegerField(default=0)
class Author(models.Model):
name = models.CharField(max_length=100)
class Publication(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author, through=Authorship)
J'ai obtenu un ModelForm
pour les publications et l'utiliser dans une vue. Le problème est, quand j'appelle form.save()
, les auteurs sont évidemment ajoutés avec la commande par défaut de 0
. J'ai écrit un OrderedModelMultipleChoiceField
avec une méthode clean
qui retourne les objets à enregistrer dans le bon ordre, mais je n'ai pas trouvé le crochet où les données m2m sont réellement enregistrées, de sorte que je pourrais ajouter/modifier/supprimer les instances Authorship
moi même.
Des idées?
Vous avez raison, bien sûr. Merci! –