Встречается на собеседованиях • сегодня
Как работает many-to-many под копотом
В Django many-to-many реализуется через промежуточную таблицу, которая хранит связи между объектами. При создании связи ManyToManyField Django автоматически создает эту таблицу.
Пример:
python
class Book(models.Model):
authors = models.ManyToManyField('Author')
class Author(models.Model):
pass
text
Под капотом Django создаст таблицу `appname_book_authors` с полями:
- `id` - первичный ключ
- `book_id` - внешний ключ к Book
- `author_id` - внешний ключ к Author
Можно явно указать промежуточную модель через `through`:
```python
class BookAuthor(models.Model):
book = models.ForeignKey(Book)
author = models.ForeignKey(Author)
date_added = models.DateField()
class Book(models.Model):
authors = models.ManyToManyField(Author, through='BookAuthor')Операции с M2M работают через менеджер отношений, который генерирует SQL-запросы для работы с промежуточной таблицей.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы