Я чувствую, что не должен задавать тонкий вопрос, потому что это кажется слишком легким. Но я не могу найти решение в django документах или здесь.
Я хочу отобразить шаблон в моем обобщенном обобщенном классе c ListView, который находится в папке шаблонов другого приложения.
Структура моей папки:
my_website
-app1
-app2
-mywebsite
-templates
-users
-welcome_pages
-welcome_user.html
-app3
-templates
-mytemplate.html
-mytemplate2.html
-views.py
-models.py
В моем app3 у меня есть вид, который выглядит следующим образом:
class VisualizationView(StaffRequiredMixin, ListView):
template_name = ????
model = Project
def get_context_data(self, **kwargs):
print(self.get_template_names())
context = super(VisualizationView, self).get_context_data(**kwargs)
context['projects'] = Project.objects.all()
return context
Так что я могу легко отрендерить шаблон сейчас в template_name
, который находится в моем app3, и выплюнуть все мои объекты проекта там. Но я хочу отобразить контекст в welcome_user. html.
Обычно в документации говорится, что я должен использовать appname/templatename
, но я получаю исключение TemplateDoesntExist. Я попытался передать имя шаблона:
mywebsite/welcome_user.html
mywebsite/users/welcome_pages/welcome_user.html
welcome_user.html
mywebsite/templates/users/welcome_pages/welcome_user.html
Если я распечатал self.get_template_names()
, я получу только список шаблонов, которые есть в app3. Я думал, что django будет автоматически искать во всем проекте, где папка шаблона? Что мне здесь не хватает? Или это не должно работать в CBV?
Извинения, если это слишком простой вопрос и спасибо за любую помощь. Ценится!