私のアプリケーションで404エラーページをカスタマイズしようとしています。多くの可能な解決策を探した後、404.htmlテンプレートを作成し、HTTPエラー404を処理し、私のurls.pyを編集するメソッドを追加しました。カスタム404 djangoテンプレート
しかし、私は本当に間違っていると思います。私のログに無効な構文エラーがあり、解決できません。
私のviews.py:
# HTTP Error 400
def page_not_found(request):
response = render_to_response('404.html',context_instance=RequestContext(request))
response.status_code = 404
return response
と構文エラー:
Traceback (most recent call last):
File "/.../myenv/lib/python3.4/site-packages/django/core/urlresolvers.py", line 393, in urlconf_module
return self._urlconf_module
AttributeError: 'RegexURLResolver' object has no attribute '_urlconf_module'
...
File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
File "/home/dcaled/work/portal-interface/portal/urls.py", line 12
handler404 = 'views.handler404'
^
SyntaxError: invalid syntax
、誰もが何が起こっているのアイデアを持っていますか?おかげさまで
更新日: @Alasdairの提案後、私はいくつかの変更と修正を行いました。エラーは停止しました。
さて、私urls.pyは次のようである:
handler404 = 'views.page_not_found'
urlpatterns = [
url(r'^$', views.home),]
しかし、非既存のページにアクセスしたとき、私はまだ私のカスタム404.htmlを得ることはありません。 代わりに、デフォルトのページでは、このメッセージを表示して、ロードされている: "
が要求されたURL/URL/404は、このサーバー上には見られないが見つかりませんでした"
また
、私のsettings.py:DEBUG = False
ALLOWED_HOSTS = ['*']
TEMPLATE_DIRS = (os.path.join(BASE_DIR , 'portal/templates'),)
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'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',
],
},
},
]
マイプロジェクトツリー:
├── fb_dev
│ ├── __init__.py
│ ├── __pycache__
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── manage.py
│
└── portal
├── admin.py
├── forms.py
├── json
├── migrations
├── models.py
├── static
├── templates
│ ├── 404.html
│ └── portal
│ ├── base.html
│ ├── home.html
├── templatetags
├── urls.py
└── views.py
あなたはどのバージョンのDjangoを使用していますか?あなたの '404.html'テンプレートはどこにありますか? – Alasdair
私のバージョンは1.8.5です。私はテンプレートの場所で質問を更新しました。 – revy
'TEMPLATES'設定はありますか?あなたのコードの他の部分は、 'portal/templates'でテンプレートを検索できますか?あなたの[ブラウザ](http://stackoverflow.com/questions/2642340/django-404-page-not-showing-up)やサーバー(Apacheなど)が404ページをハイジャックしている可能性があります。 – Alasdair