Django выбрасывает 500, когда значение отладки False в Production

Я не могу понять, почему Django 3 не работает, когда я запускаю с DEBUG=False. Также, похоже, есть проблема с урлами:

www.domain.com/ -> Does not work
www.domain.com/en/ -> No problem

В журналах упоминается миллион проблем, но я не понимаю, в чем заключается основная проблема, поэтому я ищу помощи:

Я вижу, что внизу написано Internal Server Error: /favicon.ico, и я подозреваю, что это и есть виновник, но проблема сохраняется, даже если я пробую обходные пути, такие как:

    url(r'^favicon.ico$', RedirectView.as_view(url=staticfiles_storage.url('img/favicon.ico'), permanent=True)),

Я все еще получаю 500, заканчивающиеся на:

Internal Server Error: /
"GET / HTTP/1.1" 500 680
"GET /favicon.ico HTTP/1.1" 301 0
"GET /static/img/favicon.be884a05bb00.ico HTTP/1.1" 200 9896

Посмотрев на самую первую строку, кажется, что это проблема с 404.html

{% extends "base.html" %}

{% block body_class %}template-404{% endblock %}

{% block content %}
    <h1>Page not found</h1>

    <h2>Sorry, this page could not be found.</h2>
{% endblock %}

Если я убираю строку для расширения base.html, все работает, но я не понимаю почему.

Мой urls.py:


urlpatterns = [
    url(r'^django-admin/', admin.site.urls),

    url(r'^admin/', include(wagtailadmin_urls)),
    url(r'^documents/', include(wagtaildocs_urls)),

    url(r'^i18n/$', set_language, name='set_language'),
    url(r'^sitemap\.xml$', sitemap, sitemaps),
    url(r'^favicon.ico$', RedirectView.as_view(url=staticfiles_storage.url('img/favicon.ico'), permanent=True)),
]

urlpatterns += i18n_patterns(
    # These URLs will have /<language_code>/ appended to the beginning

    url(r'', include(content_urls)),

    url(r'^search/$', search_views.search, name='search'),

 
    url(r'', include(wagtail_urls)),

)


if settings.DEBUG:
    from django.conf.urls.static import static
    from django.contrib.staticfiles.urls import staticfiles_urlpatterns

    # Serve static and media files from development server
    urlpatterns += staticfiles_urlpatterns()
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)


  1. So besides understanding why extending base is an issue,

  2. I am also wondering why at all we are getting 404 to begin with.

Спасибо за любую помощь

В первой строке говорится:

Exception while resolving variable 'self' in template '404.html'.

Вы использовали self в своем base.html, поэтому когда вы убираете

{% extends "base.html" %}

Все работает.

Так что Django не может разрешить переменную self,

Пожалуйста, обновите свой Вопрос с помощью views.py, который передает эту контекстную переменную self в base.html

Это точно прояснит ситуацию

Также следует избегать использования зарезервированных ключевых слов, таких как self в качестве имени переменной в Python

Вернуться на верх