Как сделать так, чтобы Django перенаправлял на другую страницу?

У меня есть приложение "произведения", в котором должны быть все мои произведения. Есть карточки-превьюшки к моим работам. Я хочу, чтобы они были кликабельны и перенаправляли на произведение, на которое кликнули, и вскоре показывали html-файл произведения. Проблема заключается в перенаправлении на эту работу.

В myapp/urls.py находится следующее

urlpatterns = [
    path("", WorksView.as_view(), name="works"),
    path("<slug:work_slug>/", WorkDetailView.as_view(), name="work-detail"),
]

myapp/models.py

class Works(models.Model):
    -- other attributes --
    slug = models.SlugField(
        null=False,
        db_index=True,
        blank=False,
        max_length=255,
        unique=True,
        verbose_name="URL",
    )

    def get_absolute_url(self):
        from django.urls import reverse

        return reverse("work-detail", kwargs={"work_slug": self.slug})

Так какой класс, основанный на представлении, следует использовать в myapp/views.py для WorkDetailView? Я пробовал View, TemplateView, RedirectView, но ни один из них не работает должным образом, как я хочу.

Последняя попытка была такой:

class WorkDetailView(View):
    def get(self, request, *args, **kwargs):
        work = get_object_or_404(
            Works, slug=kwargs["work_slug"]
        )
        print(work.get_absolute_url())
        return render(request, work.get_absolute_url(), {"works_data": work})

Work.get_absolute_url работает хорошо, но Django не может найти шаблон

Моя папка проекта:

project folder

Но когда я изменяю возвращаемую строку на return render(request, f"{work.get_absolute_url()[1:-1]}.html", {"work": work}) она работает и печатает "works/not-found/", но я не думаю, что это правильный путь

Так как же мне сделать это правильно?

Последняя попытка была сделать это с помощью View, но Django говорит TemplateDoesNotExist at /works/not-found/

Это фрагмент из моего work.html

{% block body %}
<div class="intro" id="#intro">
    <div class="container">
        <div class="works">
            {% for work in works_data %}
                <a href="{{ work.get_absolute_url }}" class="work__item">
                    {% if work.preview %}
                        <img src="{{ work.preview.url }}" class="work__preview"></img>
                    {% else %}
                        <div class="work__preview">Photo preview</div>
                    {% endif %}
                    <h1 class="work__title">{{ work.title }}</h1>
                    <div class="work__description">{{ work.description }}</div>
                </a>
            {% endfor %}
        </div>
    </div>
</img>
{% endblock %}
Вернуться на верх