TypeError: url() got an unexpected keyword argument 'name'

Прохожу гайд по книге Эрика Метиза по работе с фреймворком Django, в ходе работы возникла ошибка, не могу решить проблему, начав поиск в интернете, наткнулся на статью.

learning_log\urls.py

from django.conf.urls import include
from django.contrib import admin
from django.template.defaulttags import url
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'', include('learning_logs.urls')),
] 

learning_logs\urls.py

from django.template.defaulttags import url
from . import views

app_name = 'learning_logs'
urlpatterns = {
    # Домашняя страница
    url(r'^$', views.index, name='index'),
}

views.py

from django.shortcuts import rende

def index(request):
    """Домашняя страница для learning_logs"""
    return render(request, 'learning_logs/index.html')

При запуске сервера с помощью команды python manage.py runserver получаю следующую ошибку:

    url(r'^$', views.index, name='index'),
TypeError: url() got an unexpected keyword argument 'name'

В виртуальном окружении я использую:

  • Django 4.0.1
  • Python 3.9

P.S.: Я так полагаю, что проблема в разнице версий, но я совсем новичок и не понимаю, что от меня просят.

Исправил самостоятельно leagrning_logs\urls.py

from django.urls import path


from . import views

urlpatterns = [
    # Домашняя страница
    path('', views.index, name='index'),
]

По книге идёт старая версия Django с версии 3.0 как я понял рекомендуется использовать path learning_log\urls.py

from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('learning_logs.urls')),
]
Вернуться на верх