I have Publication
s and Author
s. Since the ordering of Author
s matters (the professor doesn't want to be listed after the intern that contributed some trivial data), I defined a custom many-to-many model:
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)
I've got aModelForm
for publications and use it in a view. Problem is, when I call form.save()
, the authors are obviously added with the default ordering of 0
. I've written a OrderedModelMultipleChoiceField
with a clean
method that returns the objects to be saved in the correct order, but I didn't find the hook where the m2m data is actually saved, so that I could add/edit/remove the Authorship
instances myself.
Any ideas?