Отображение архивных статей при запросе

После получения статьи проверьте archived и выберите отдельный шаблон уведомления. Архивность не равна отсутствию: по заданному требованию можно вернуть страницу с сообщением, не раскрывая текст статьи.

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

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

После получения статьи проверьте archived и выберите отдельный шаблон уведомления. Архивность не равна отсутствию: по заданному требованию можно вернуть страницу с сообщением, не раскрывая текст статьи.

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

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

Условие

В модель статьи вводится булевый атрибут archived. При попытке открыть статью, если её поле archived равно True, вместо обычного текста необходимо вывести уведомление, что статья находится в архиве.

# views.py
# TODO: проверить флаг archived у статьи и, если он True, вернуть шаблон или сообщение "Статья заархивирована"

Ответ

После получения статьи проверьте archived и выберите отдельный шаблон уведомления. Архивность не равна отсутствию: по заданному требованию можно вернуть страницу с сообщением, не раскрывая текст статьи.

Пример function-based view:

from django.shortcuts import get_object_or_404, render
from .models import Article

def article_detail(request, pk):
    article = get_object_or_404(Article, pk=pk)
    if article.archived:
        return render(request, 'articles/archived.html')
    return render(request, 'articles/detail.html', {'article': article})

В archived.html поместите «Статья заархивирована». Проверку прав нужно выполнять независимо от флага. Если архив означает окончательное удаление ресурса, статус 410 может быть отдельным продуктовым решением; автоматически менять его при данном требовании не нужно.

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

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

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

Подробнее