Я хотел бы использовать отношение ManyToMany. У меня есть следующие модели:
class Person(models.Model):
name = odels.CharField(max_length=200)
songs = models.ManyToManyField(Songs)
class Songs(models.Model):
name = odels.CharField(max_length=200)
Теперь, сохранив экземпляр Person, я бы хотел построить отношение «многие ко многим»:
class Person(models.Model):
def save(self, *args, **kwargs):
song_instance, created = models.Songs.objects.get_or_create(name = some_name)
self.songs.add(song_instance)
super(Person, self).save(*args, **kwargs)
Проблема с приведенным выше кодом заключается в том, что при отправке формы в административной панели появляется ошибка
Экземпляр Person должен иметь значение первичного ключа перед
Можно использовать отношение многие ко многим.
Однако, если я переключу порядок следующим образом:
super(Person, self).save(*args, **kwargs)
self.songs.add(song_instance)
У меня есть pk, но мне нужно будет добавить еще один вызов к self.save()
, чтобы песни были добавлены в экземпляр Person, и это вызовет бесконечный цикл.
Так, как я могу идти вперед и заставить эту работу? :)
Спасибо,
Joel