1. В приложении основного проекта делаешь views.py (да, так можно)
2. В urls.py основного приложения проекта:
handler404 = 'some_project.views.page_not_found_view'
3. Собественно говоря, код для some_project/views.py:
def page_not_found_view(request, exception):
return render(request, '404/404.html', status=404)
Не забываем DEBUG в False, также ALLOWED_HOSTS = ['*']. Дальше кастомизируем, как хотим.