Определение модели Article для получения записи по идентификатору

Для Django достаточно модели с автоматически создаваемым id, URLField и TextField. Получайте запись через get_object_or_404 по идентификатору маршрута.

Короткий ответ

Что ответить на собеседовании

Для Django достаточно модели с автоматически создаваемым id, URLField и TextField. Получайте запись через get_object_or_404 по идентификатору маршрута.

Подробный разбор

Ответ с пояснениями

Условие

Требуется сформировать описание модели Article, которая будет использоваться для извлечения статьи из базы данных по идентификатору, полученному из URL, и последующего отображения полного текста в шаблоне.

# models.py
# TODO: описать модель Article с полями: id, url, содержимое статьи

Модель должна содержать как минимум три поля: уникальный идентификатор записи, URL‑адрес статьи и её текстовое содержание.

Ответ

Для Django достаточно модели с автоматически создаваемым id, URLField и TextField. Получайте запись через get_object_or_404 по идентификатору маршрута.

# models.py
from django.db import models

class Article(models.Model):
    url = models.URLField(max_length=2048)
    content = models.TextField()

Django добавит первичный ключ id, если он не задан явно. После создания миграции и её применения представление может выглядеть так:

from django.shortcuts import get_object_or_404, render

def article_detail(request, article_id):
    article = get_object_or_404(Article, pk=article_id)
    return render(request, 'article.html', {'article': article})

В шаблоне {{ article.content }} экранируется по умолчанию. Не используйте safe для недоверенного HTML. Уникальность url добавляйте только если это действительно бизнес-правило, а не предположение.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее