Sobes.tech
Back to questions
Junior — Middle
51

Объясните, что такое связь ForeignKey в Django и как она используется для установления отношений между моделями.

Companies where asked
Оптимакрос
Диджитал сектор

Answer from AI

sobes.tech AI

В Django связь ForeignKey используется для установления отношения «многие к одному» между моделями. Это означает, что одна запись в одной модели может быть связана с несколькими записями в другой модели.

Например, если у вас есть модели Author и Book, то каждая книга может иметь одного автора, а у автора может быть много книг. В модели Book вы добавляете поле author = models.ForeignKey(Author, on_delete=models.CASCADE), чтобы связать книгу с автором.

Пример:

from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=100)

class Book(models.Model):
    title = models.CharField(max_length=200)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)

Здесь on_delete=models.CASCADE означает, что при удалении автора все связанные книги тоже будут удалены.

Таким образом, ForeignKey позволяет навигировать от объекта с «многими» к объекту с «одним» и использовать связанные данные в запросах и шаблонах.