【问题标题】:Django search the wrong directory for index templateDjango在错误的目录中搜索索引模板
【发布时间】:2021-04-06 18:14:15
【问题描述】:

您好,我是 Django 的新手,我有 2 个名为 home 和 blog 的应用程序。

我家的项目 urls.py 是

urlpatterns = [
    path('',include('home.urls')),
    path('blog/',include('blog.urls')),
    path('admin/', admin.site.urls),
]

博客应用 urls.py 是

app_name= 'blog'
urlpatterns =[
    path('',views.index, name = 'index'),
    path('<int:post_id>/',views.postpage, name ='postpage')
]

家庭应用 urls.py 是

app_name= 'home'
urlpatterns = [
    path('', views.index, name='index'),
]

当我尝试在家庭应用程序中呈现 index.html 时,django 在博客应用程序中搜索,但是它必须在家庭应用程序中搜索。

更详细的我的 homeviews.py 是

def index(request):
    return render(request,'home/index.html')

和页面返回

TemplateDoesNotExist at /

django.template.loaders.app_directories.Loader: /home/caglarbingol/Documents/Projects/caglarbingol/blog/templates/home/index.html(来源不存在)

两个应用在目录中都有 index.html 页面

blog/templates/blog/index.html 和 主页/模板/主页/index.html

我做错了什么?

【问题讨论】:

  • 这一定是因为您为模板目录保存的设置。您可以分享包含模板列表的 settings.py 文件代码吗?还有项目目录树?
  • 我忘记将家庭应用添加到 settings.py。它解决了我的问题。非常感谢你@AjayLingayat

标签: python django


【解决方案1】:

您确定您的 post/view.py 中没有复制粘贴错误吗?您只提供了 home/views.py。

我想在你的 post/view.py 中你有错误的路径:

def index(request):
    return render(request,'home/index.html')

应该是

def index(request):
    return render(request,'blog/index.html')

【讨论】:

  • 不,没有。 post/index 给这个 django.template.loaders.app_directories.Loader: /home/caglarbingol/Documents/Projects/caglarbingol/blog/templates/post/index.html (来源不存在)
  • 对不起我的错误......我将“post”更正为“blog”
猜你喜欢
  • 2013-01-26
  • 2017-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-31
  • 1970-01-01
  • 1970-01-01
  • 2018-06-06
相关资源
最近更新 更多