📝 Django

Django DetailView

P
Автор
Pyland
📅
Опубликовано
30.06.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
74
🌿
Уровень
Средний
🐦 💼 ✈️

DetailView — CBV для отображения одного объекта по его pk или slug.

Базовый пример

from django.views.generic import DetailView
from .models import Task

class TaskDetailView(DetailView):
    model = Task
    template_name = 'tasks/task_detail.html'
    context_object_name = 'task'

URL

path('tasks/<int:pk>/', views.TaskDetailView.as_view(), name='task-detail'),
# или по slug:
path('tasks/<slug:slug>/', views.TaskDetailView.as_view(), name='task-detail'),

Шаблон

<h1>{{ task.title }}</h1>
<p>Статус: {{ task.get_status_display }}</p>
<p>Владелец: {{ task.owner.username }}</p>
<p>Создана: {{ task.created_at|date:"d.m.Y" }}</p>

<a href="{% url 'task-edit' task.pk %}">Редактировать</a>
<a href="{% url 'task-delete' task.pk %}">Удалить</a>

Дополнительный контекст

class TaskDetailView(DetailView):
    model = Task

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['related_tasks'] = Task.objects.filter(
            project=self.object.project
        ).exclude(pk=self.object.pk)[:5]
        return context

Проверка прав доступа

from django.contrib.auth.mixins import LoginRequiredMixin

class TaskDetailView(LoginRequiredMixin, DetailView):
    model = Task

    def get_queryset(self):
        return Task.objects.filter(owner=self.request.user)

Slug вместо pk

class TaskDetailView(DetailView):
    model = Task
    slug_field = 'slug'          # поле в модели
    slug_url_kwarg = 'slug'      # параметр в URL

Ваша реакция на статью

💬 Комментарии (0)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

pytest-django: тестирование Django

Охватываемые темы: Установка, @pytest.mark.djangodb, Фикстуры, Тестирование views.

📅 30.06.2026 👁️ 138
📝

AI-агенты: ReAct loop и автономные действия

Чат-бот отвечает на вопросы. Агент — действует: вызывает инструменты, получает реальные данные и использует их...

📅 30.06.2026 👁️ 103
📝

RAG: чат с документами через векторный поиск

RAG (Retrieval-Augmented Generation) — паттерн для работы с собственными документами. Вместо того чтобы переобучать модель,...

📅 30.06.2026 👁️ 94

Понравилась статья?

Подпишитесь на наши обновления и получайте новые статьи первыми. Развивайтесь вместе с PyLand!