Что касается вашего второго вопроса, используйте 404 handler
# root_dir/views.py
from django.http.response import HttpResponseRedirect
def handler404(request, *args, **kwargs):
return HttpResponseRedirect('/')
# root_dir/urls.py
urlpatterns = [
path('admin/', admin.site.urls),
...,
...,
]
handler404 = 'root_dir.views.handler404'