После получения статьи проверьте 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 может быть отдельным продуктовым решением; автоматически менять его при данном требовании не нужно.