Sobes.tech
Back to questions
Junior — Middle
55

Каким образом можно установить отношения между моделями в рамках Django ORM?

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

Answer from AI

sobes.tech AI

В Django ORM отношения между моделями устанавливаются с помощью специальных полей, которые определяют тип связи:

  • ForeignKey (один ко многим): Связывает одну запись модели с несколькими записями другой.

  • OneToOneField (один к одному): Связывает одну запись модели с одной записью другой.

  • ManyToManyField (многие ко многим): Позволяет связывать множество записей одной модели с множеством записей другой.

Пример:

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)  # один автор - много книг

class Profile(models.Model):
    user = models.OneToOneField('auth.User', on_delete=models.CASCADE)  # один профиль - один пользователь

class Student(models.Model):
    name = models.CharField(max_length=100)
    courses = models.ManyToManyField('Course')  # студент может посещать много курсов

class Course(models.Model):
    title = models.CharField(max_length=200)

Таким образом, используя эти поля, можно явно задавать и управлять связями между моделями в базе данных.