私はモデルを持っています(単純化された例):
class Group(models.Model):
name = models.CharField(max_length = 32)
class Person(models.Model):
group = models.ForeignKey(Group)
class Task(models.Model):
group = models.ForeignKey(Group)
people = models.ManyToManyField(Person)
def save(self, **kwargs):
ppl = Person.objects.all().filter(group = self.group)
for p in ppl:
self.people.add(p)
super(Task, self).save(**kwargs)
あるグループにタスクを割り当て、そのグループに属するすべての人を後で他の人として追加したい (またはタスクから特定の人を削除したい)。多対多の関係オブジェクトを追加する場合、オブジェクトに ID がないため、明らかに保存は実行されません。そのような状況をどのように処理しますか?人をタスクに追加する直前に保存してから再度保存しようとしましたが、うまくいきませんでした。
よろしく
クリス