Я тренируюсь на Django и работаю над фильмом в блоге, и у меня есть проблемы с моими приборами, которые я убираю из api themoviedb. Мне интересно, как правильно вставить ManyToMany с посреднической моделью. Вот мое текущее состояние (удаление ненужных полей):
class Movie(models.Model):
tmdb_id = models.AutoField(primary_key=True)
original_title = models.CharField(max_length=255)
actors = models.ManyToManyField(Person, through='Actor', related_name="movie_cast")
staffs = models.ManyToManyField(Person, through='Staff', related_name="movie_staff")
class Actor(models.Model):
person = models.ForeignKey(Person, on_delete=models.CASCADE)
movie = models.ForeignKey(Movie, on_delete=models.CASCADE)
role = models.CharField("person's role in a movie", max_length=40)
class Staff(models.Model):
person = models.ForeignKey(Person, on_delete=models.CASCADE)
movie = models.ForeignKey(Movie, on_delete=models.CASCADE)
department = models.CharField(max_length=30)
job = models.CharField("person's job in a movie", max_length=40)
Что я делаю сейчас, так это вставляю вручную модель.actor или model.staff, как это, в прибор. Изменить: это создается в команде Django, которая создает .json, а затем вставляется с loaddata.
{"model": "blog.actor",
"fields": {
"person": people['id'],
"movie": movie['id'],
"role": people['character'],
}
}
Я пытаюсь передать этот dict или просто дополнительное поле в поле movie.actor, но для этого требуется intвнешний ключ.
Я делаю правильно или есть лучший способ сделать это?
Спасибо.