Встречается на собеседованиях • сегодня

Как связать модели в Django

В Django модели связываются через поля отношений. Основные типы связей:

  1. ForeignKey - связь "многие к одному". Например, у статьи один автор, но у автора много статей:
python
class Author(models.Model):
    name = models.CharField(max_length=100)

class Article(models.Model):
    title = models.CharField(max_length=200)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)
  1. ManyToManyField - связь "многие ко многим". Например, у статьи может быть несколько тегов, и тег может относиться к нескольким статьям:
python
class Tag(models.Model):
    name = models.CharField(max_length=50)

class Article(models.Model):
    tags = models.ManyToManyField(Tag)
  1. OneToOneField - связь "один к одному". Например, расширенный профиль пользователя:
python
class UserProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    bio = models.TextField()

Параметр on_delete определяет поведение при удалении связанного объекта (CASCADE, PROTECT, SET_NULL и др.). Для ManyToMany можно использовать промежуточную модель через through.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы