2017-07-18 20 views
0

仮想環境でdjango 1.9とpython 3.5を使用して自分のドメインにブログを作成しようとしていました。したがって、pythonanywhereにデプロイしている間。私はhtmlをレンダリングすることができます。ここにトレースバックがあります。pythonanywhereにデプロイするときにテンプレートが存在しません

Request Method: GET
Request URL: http://www.example.com/

Django Version: 1.9
Python Version: 3.5.2
Installed Applications:

['django.contrib.admin', `  
` 'django.contrib.auth', ` 
`'django.contrib.contenttypes',`   
`'django.contrib.sessions',`  
`'django.contrib.messages',`  
`'django.contrib.staticfiles',`  
`'blog']``  

Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']

Template loader postmortem
Django tried loading these templates, in this order:

Using engine django: 
* django.template.loaders.app_directories.Loader:  
/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/contrib/admin/templates/blog/templates/blog/post/list.html(Source does not exist) 
* django.template.loaders.app_directories.Loader: 
/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/contrib/auth/templates/blog/templates/blog/post/list.html(Source does not exist) 
* django.template.loaders.app_directories.Loader: 
/home/pdlsaroj22/myblog/mysite/blog/templates/blog/templates/blog/post/list.html (Source does not exist) 

Using engine django: 
* django.template.loaders.app_directories.Loader: 
/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/contrib/admin/templates/blog/post_list.html (Source does not exist) 
* django.template.loaders.app_directories.Loader: 
/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/contrib/auth/templates/blog/post_list.html (Source does not exist) 
* django.template.loaders.app_directories.Loader: 
/home/pdlsaroj22/myblog/mysite/blog/templates/blog/post_list.html (Source does not exist) 

トレースバック:

File "/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response 
        response = `self.process_exception_by_middleware(e, request) 
File "/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response 
        response = response.render() 
File "/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/template/response.py" in render 
      self.content = self.rendered_content 
File "/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/template/response.py" in rendered_content 
      template = self._resolve_template(self.template_name) 
File "/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/template/response.py" in _resolve_template 
      new_template = self.resolve_template(template) 
File "/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/template/response.py" in resolve_template 
      return select_template(template, using=self.using) 
File "/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/template/loader.py" in select_template 
      raise TemplateDoesNotExist(', '.join(template_name_list), chain=chain) 
Exception Type: TemplateDoesNotExist at/
Exception Value: blog/templates/blog/post/list.html, blog/post_list.html 

私のviews.pyのようになります。uは(あなたのsettings.pyに登録されたよう)のブログと呼ばれるアプリを持っている、とあなたはAPP_DIRには、テンプレートディレクトリの下にtrueに設定されている場合

class PostListView(ListView):  
    queryset = Post.published.all()  
    context_object_name = 'posts'  
     paginate_by = 3  
     template_name = 'blog/templates/blog/post/list.html'  
+0

あなたのテンプレート設定は何ですか?あなたのローカルホームディレクトリにディレクトリをハードコードしたようです。 –

+0

あなたはsettinsg.pyファイル – ammy

+0

を私に見せてください。また、あなたのlist.htmlファイルの場所は? – karthikr

答えて

2

settings.pyを使用すると、ブログアプリケーションにtemplatesというディレクトリがあり、テンプレート内にblogという別のディレクトリがある可能性があります。

この場合、blog/templates/blog/post/list.htmlは、ブログアプリのブログディレクトリに投稿ディレクトリがある場合は、実際にはpost/list.htmlと記述する必要があります。

+0

これで問題が解決した場合は、正しい回答としてマークし、それ以外の場合は更新を行います。 –

0

"templates"ここにsettingd.pyという名前のフォルダを作成し、このテンプレートフォルダに.htmlファイルを置く必要があります。そしてsettings.pyファイル以下に変更を加えます。

class PostListView(ListView): 
    queryset = Post.published.all() 
    context_object_name = 'posts' 
    paginate_by = 3 
    template_name = 'list.html' 

は、あなたがこの回答の助けを願っています:

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', 
      ], 
     }, 
    }, 
] 

そして、あなたのコード内に以下のような変更を行います。

関連する問題