2015-06-05 175 views
2

我在django中編寫了一個應用程序。我想爲它編寫一個index.html。但我無法讓它運行。我試圖檢查設置和代碼,但它也不起作用。我將粘貼代碼。希望有人能找到訣竅。django中的模板問題

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [os.path.join(BASE_DIR, 'templates')], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
       'django.core.context_processors.static', 
      ], 
     }, 
    }, 
] 

我寫了一個名爲blog的應用程序。我把的index.html的,博客/模板/博客/

views.py 

def index(request): 
    posts = Post.objects.filter(published=True) 
    return render(request,'blog/index.html',{'posts':posts}) 



urls.py: 

urlpatterns = [ 
url(r'^$', views.index, name='index') 
] 

我無法找到任何問題,但它只是不工作。看起來模板沒有找到,但配置路徑是正確的。或者我錯過了一些我不知道的東西?

回答

1

增加「博客」的INSTALLED_APPS元組settings.py

此外,以下是爲我工作的設置。希望這些也能爲你解決問題。

import os 

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
PROJECT_BASE_PATH = os.path.dirname(__file__) 
PROJECT_DIR_NAME = os.path.split(PROJECT_BASE_PATH)[1] 

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [os.path.join(PROJECT_BASE_PATH, 'templates').replace('\\', '/')], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
      ], 
     }, 
    }, 
] 

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader', 
    'django.template.loaders.app_directories.Loader', 
    ) 
+0

我們的設置之間的唯一區別是TEMPLATE_LOADERS,我添加它,但沒有發生變化。我當然會將「博客」添加到INSTALLED_APPS。一切安好。但是index.htmi似乎沒有加載。 – Wandy

+0

是的,我想我會訣竅。這是模板的繼承問題。感謝您的時間。 – Wandy

+0

只是好奇的Animesh,爲什麼'替換('\\','/')'?難道你不能只在Django中使用正斜槓,並且不管* nix/Windows如何工作? – FlipperPA