Django locale enabled app always returns 404 when debug is off -
i've been developing app uses i18n/locale url prefix in root/landing page. tried deploy application earlier testing purposes debug=true , working perfectly. if attempting access domain.com redirect domain.com/en/
now, since disabled debug=false, won't redirect /en/, instead show 404 error.
i saw question, close scenario
django 1.4 localemiddleware not working apache, works runserver
but, case, have 404 page setup , handlers , 404.html file.
below code
settings.py
language_code = 'en-us' admin_language_code = language_code gettext = lambda s: s languages = ( ('ar', gettext('arabic')), ('en', gettext('english')), ) use_i18n = true middleware_classes = ( 'django.contrib.sessions.middleware.sessionmiddleware', 'django.middleware.locale.localemiddleware', 'django.middleware.common.commonmiddleware', 'django.middleware.csrf.csrfviewmiddleware', 'django.contrib.auth.middleware.authenticationmiddleware', 'django.contrib.messages.middleware.messagemiddleware', 'apps.accounts.middleware.accountsocialauthexceptionmiddleware', 'apps.core.middleware.defaultsitemiddleware', # 'debug_toolbar.middleware.debugtoolbarmiddleware', # uncomment next line simple clickjacking protection: # 'django.middleware.clickjacking.xframeoptionsmiddleware', ) template_context_processors = ( "django.contrib.auth.context_processors.auth", "django.core.context_processors.debug", "django.core.context_processors.request", "django.core.context_processors.i18n", "django.core.context_processors.media", "django.core.context_processors.static", "django.core.context_processors.tz", "django.contrib.messages.context_processors.messages", # custom context processors "snowflake.apps.core.context_processors.project_name", "snowflake.apps.core.context_processors.sites", ) and here urls
from django.conf import settings django.conf.urls import patterns, include, url django.conf.urls.i18n import i18n_patterns django.contrib.staticfiles.urls import staticfiles_urlpatterns urlpatterns = patterns('', url(r'^admin/', include('apps.mod.urls')), url(r'^redirect/login/$', 'apps.core.views.redirect_to_accounts', name='login-redirect'), ) urlpatterns += i18n_patterns('', url(r'^$', 'apps.publication.views.index', name='home'), url(r'^publication(s)?/', include('apps.publication.urls')), url(r'^comment(s)?/', include('apps.comment.urls')), url(r'^rating(s)?/', include('apps.rating.urls')), url(r'^tag(s)?/', include('apps.taggable.urls')), url(r'^search/', include('apps.search.urls')), url(r'^guard(s)?/', include('apps.guard.urls')), ) handler404 = 'apps.core.views.handler404' p.s using django 1.5
your view apps.core.view.handler404 returns httpresponse object... http status code 200.
response = render_to_response("...") response.status_code = 404 return response should solve problem (have had before).
Comments
Post a Comment