Django-tables2 linkify к другому приложению проекта: Ошибка TemplateDoesNotExist

Поскольку мой проект большой, у меня есть несколько приложений, в каждом из которых есть несколько таблиц базы данных (каждая таблица в своем файле): project

    --project
    -all 
    -overview
    -home

В файле all/probe_list.html у меня есть таблица, в которой отображаются объекты зондов. Я хочу связать имя зонда со страницей подробностей, которая находится в приложении обзора (overview/probe_details.html). Ссылка работает и показывает правильный URL 127.0.0.1:8000/overview/probe_detail/1, но я получаю ошибку TemplateDoesNotExist, поскольку django ищет all/probe_detail.html.

project/urls.py

urlpatterns = [
    path('', include('home.urls')),
    path('all/', include('all.urls', namespace='all')),
    path('overview/', include('overview.urls', namespace='overview')),
]

all/urls.py

app_name = 'all'
urlpatterns = [
     path('probe_list', views.AllProbesView.as_view()),
]

all/models/probe.py

class Probe(Compound):
     targetName = models.CharField(max_length = 100, verbose_name="Target(s)")
     inVivoActivity = models.CharField(max_length=10, verbose_name="In vivo use");
     mechanismOfAction = models.CharField(max_length = 255, verbose_name="Mechanism")

    def get_absolute_url(self):
          return reverse('overview:probe_detail', args=[str(self.id)]) 

    def __str__(self):
          return f'{self.name}, {self.targetName}, {self.mechanismOfAction},{self.inVivoActivity}'

    class Meta:
        app_label = 'all'

all/tables.py

class AllProbesTable(tables.Table): 
      name = tables.Column(linkify=True)   
      class Meta:
         model = Probe       
         template_name = "django_tables2/bootstrap5-responsive.html"     
         sequence = ("targetName", "name",  "mechanismOfAction" ,"inVivoActivity",)
         exclude = ("id",)

all/views.py

class AllProbesView(SingleTableView):
      model = Probe
      table_class = AllProbesTable
      queryset = Probe.objects.all()
      template_name = "all/probe_list.html"

all/templates/all/probe_list.html

{% load render_table from django_tables2 %}
{% render_table table %}

overview/urls.py

app_name = 'overview'
urlpatterns = [
    path('probe_detail/<int:pk>', views.ProbeDetailView.as_view(), name="probe_detail"),
]

overview/views.py (еще не готов)

class ProbeDetailView(DetailView):
      model=Probe

overview/templates/overview/probe_detail.html (еще не готов)

{% extends 'baseHeaderIcon.html' %}
{% block header %}Probe details{% endblock header %} 

Если я нажимаю на ссылку, то получаю:

TemplateDoesNotExist at /overview/probe_detail/1
all/probe_detail.html
Request Method: GET
Request URL:    http://127.0.0.1:8000/overview/probe_detail/1
Django Version: 5.0.1
Exception Type: TemplateDoesNotExist
Exception Value: all/probe_detail.html
Raised during:  overview.views.ProbeDetailView
Python Version: 3.12.1

Ищет all/probe_detail.html вместо overview/probe_detail.html. Что я упускаю?

It's likely looking in all/ because Probe has app_label='all'.

A solution is to explicitly set the template_name in the ProbeDetailView class.

class ProbeDetailView(DetailView):
    model=Probe
    template_name = 'overview/probe_detail.html'
Вернуться на верх