6

Котики и ForeignKey: как связать своих питомцев в Django

Когда коты начинают общаться между собой, они создают целые сообщества. А мы с тобой научимся строить такие же связи в базах данных!

⭐️ Что такое ForeignKey? Или как кот Мурзик нашёл свою миску

ForeignKey - это специальный тип поля в Django, который позволяет связать две модели между собой. Представь, что у нас есть два кота: Мурзик и Барсик. У каждого из них своя миска с едой. Чтобы каждый кот мог найти свою миску, мы создаём связь между ними.

✨ Как это работает?

Давайте разберёмся на пальцах (или лапках):

  • Когда ты создаёшь ForeignKey, ты говоришь базе данных: "Смотри, этот кот связан с этой миской"

  • Внутри Django происходит магия: создаётся специальное поле, которое хранит ID связанной записи

💡 От древних библиотек до современных баз данных

В стародавние времена, когда не было компьютеров, библиотекари использовали карточки для связи книг с их авторами. Теперь мы делаем то же самое, только цифровым способом!

📋 Примеры использования

Котики и ForeignKey: как связать своих питомцев в Django Python, Программирование, Обучение, Джанго, Длиннопост

🎯 Разные ситуации, или как Мурзик меняет миски

🌟 Создание записи

Котики и ForeignKey: как связать своих питомцев в Django Python, Программирование, Обучение, Джанго, Длиннопост

🌟 Получение данных

Котики и ForeignKey: как связать своих питомцев в Django Python, Программирование, Обучение, Джанго, Длиннопост

🌟 Обновление связи

Котики и ForeignKey: как связать своих питомцев в Django Python, Программирование, Обучение, Джанго, Длиннопост

💭 Типы поведения при удалении

CASCADE 🐾 - Если миску удаляют, кот тоже пропадает

PROTECT 🐾 - Защищает миску от удаления, если там есть кот

SET_NULL 🐾 - Если миску удалят, кот останется без неё

SET_DEFAULT 🐾 - При удалении миски кот получает стандартную

🤔 Знаешь, почему коты любят ForeignKey? Потому что он помогает им всегда находить свои миски! Остались ли у тебя вопросы о том, как связывать модели в Django, или всё так же ясно, как утренний луч солнца на миске с кормом?

А на канале https://t.me/pytonism мы рассмотрим связь many-to-many, заходите ;)

Правила сообщества

Публиковать могут пользователи с любым рейтингом. Однако!


Приветствуется:

• уважение к читателям и авторам

• конструктивность комментариев

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт


Не рекомендуется:

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

• нарушать правила Пикабу