Как сделать пост-вызов в Django, когда ваши модели много-ко-многим?
Я пытаюсь понять, как я должен структурировать свой вызов сообщения, когда я хочу сделать отношения "многие ко многим".
class School(models.Model):
name = models.CharField(unique=True, max_length=30, blank=True)
teachersAtSchool = models.ManyToManyField('Teacher', blank=True)
class Teacher(models.Model):
account = models.ForeignKey(Account, default=1, on_delete=models.SET_DEFAULT)
schoolsTeachingAt = models.ManyToManyField('School', blank=True)
Я отправляю следующий JSON:
{
"name": "school Name",
"teachersAtSchool": 0
}
и получаем следующий результат:
{
"id": 13,
"name": "school Name",
"teachersAtSchool": []
}
Я проверил, что в базе данных действительно есть учителя, которых я могу получить с помощью моего GET-вызова. Я даже пробовал с разными идентификаторами, но получил тот же результат. Возможно, это что-то очень простое, чего я просто не понимаю. Пожалуйста, помогите мне.
Приветствует
@simple_code сказал: "Я не думаю, что вам нужна depth=1. Так как ModelSerializers по умолчанию делают первичные ключи. - simple_code"
Это привело к возврату по умолчанию к id, что и было решением.
Я нашел этот ответ, следуя их предложению "Также попробуйте поиграть с сериализатором самостоятельно, потому что входной json, который он ожидает, такой же, как и выходной json, который он создает. Так что если у вас есть действующая школа с учителями, напечатайте то, что выведет сериализатор. Это даст вам правильный вход для сериализатора. - simple_code" и заметив, что json, который я получил обратно, был целым сериализованным классом
Спасибо всем за помощь и предложения. Надеюсь, этот пост кому-нибудь поможет.