Мне интересно, можно ли сократить действия при создании какой-либо модели на основе данных формы, где у нас есть отношения «многие ко многим». Мы не можем сохранить все данные сразу, потому что M to M должен знать об идентификаторе модели, и это проблема, потому что у нас нет такого идентификатора при первом сохранении модели.
Так что я сделать это следующим образом:
- Создание модели на основе простых полей для получения идентификатора
- Вручную установите поле M в M и сохраните его снова
для меня это выглядит так, как будто у нас есть 2 запроса к БД (возможно, я ошибаюсь, поэтому исправьте меня, пожалуйста)
Можно ли сократить эти шаги до 1?
Кстати. Я думаю, что ModelForm должен помочь, но мне интересно, если это возможно сделать на низком уровне с простыми django .Forms. Кроме того, я не уверен, что ModelForm не делает то же самое.
вот пример кода (очень простой, потому что я не хочу публиковать много кода, потому что это сделает чтение тяжелее)
# receive the form cleaned data
data = form.cleaned_data
# create a model with the simple fields to receive the ID
b = Book(title=data['title'], summary=data['summary'], isbn=data['isbn'])
b.save()
# populating the relations
b.genre.set(data['genre']) # Many to Many field
b.author = data['author'] # One to Many field
b.save()
Спасибо за любую помощь.