Django добавляет двоеточие к пути из ниоткуда

У меня есть довольно простой проект Django, основанный на проекте из учебника, который я медленно превращаю в свое собственное приложение. Он отлично работал локально. Я попытался развернуть его на Heroku, сделал несколько изменений, но он все еще работал нормально локально (я все еще работаю над тем, чтобы заставить его работать на Heroku). Но затем я запустил его еще раз и ни с того ни с сего получил эту ошибку:

Invalid argument: 'C:\\Users\\cusack\\PycharmProjects\\pythonProject\\website\\:\\index.html'

Значит, он по какой-то причине добавляет :\\ или \\: к пути. Я просмотрел settings.py, views.py, urls.py, и не могу найти нигде, где бы я сказал ему делать это. Мой файл urls.py выглядит (частично) так:

urlpatterns = [
    path('', views.index, name='index'),
    path('images/random.png',views.my_image,name='randomImage'),
    path('admin/', admin.site.urls)
]

Главная страница и админка выдают эту ошибку, но 'images/random.png' работает нормально. На странице администратора добавляется дополнительное :\\ перед admin\\index.html.

Мой views.py для этого индекса тривиален:

def index(request):
    return render(request, 'index.html')

Это произошло, когда я играл с DEBUG и ALLOWED_HISTS, хотя изменение их обратно на True и [], похоже, не помогло.

Есть идеи, откуда это может исходить?

проверьте, не оставили ли вы в settings.py случайно что-то вроде этого объявления списка DIRS:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [":"],
        ...

если да, измените на

        'DIRS': [],

Наконец-то разобрался. Я заменил 'DIRS': os.path.join(BASE_DIR, '../templates'), на 'DIRS': [os.path.join(BASE_DIR, 'templates')]. Я все еще не уверен, почему это работало некоторое время с оригинальным кодом, и я также не уверен, зачем нужны [ ].

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