Django - Обратный запрос для 'index' не найден. 'index' не является допустимым именем функции представления или шаблона

Я новичок в Django. Я работал на основе шаблона от Mozilla: https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Tutorial_local_library_website

Я создал проект под названием 'debtSettler'. И в нем есть приложение под названием 'home'.

У меня есть следующие отображения url:

./debtSettler/debtSettler/urls.py:

urlpatterns = [
   
    path('home/', include('home.urls')),    
    path('admin/', admin.site.urls),
    path('', RedirectView.as_view(url='home/')),    
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

./debtSettler/home/urls.py:

app_name = 'home'
urlpatterns = [    
    path('', views.index, name='index'),
    path('clubs/', views.ClubListView.as_view(), name='clubs'),    
]

И мнения:

./debtSettler/home/views.py:

from django.http import HttpResponse, HttpResponseRedirect


def index(request):

    num_clubs = Club.objects.all().count()    

   
    # The 'all()' is implied by default.
    num_members = Member.objects.count()

    context = {
        'num_clubs': num_clubs,
        'num_members': num_members,        
    }

    # Render the HTML template index.html with the data in the context variable
    return render(request, 'index.html', context=context)

class ClubListView(generic.ListView):

    model = Club

    def get_context_data(self, **kwargs):
        # Call the base implementation first to get the context
        context = super(ClubListView, self).get_context_data(**kwargs)
        # Create any data and add it to the context
        context['some_data'] = 'This is just some data'
        return context

В шаблоне у меня есть два URL, которые выдают ошибку:

<a href=" {% url 'index' %}  ">Home</a>
<a href=" {% url 'clubs' %} ">All clubs</a> 

Отмена для 'index' не найдена. 'index' не является допустимой функцией представления или именем шаблона.

Если я добавляю my_app:my_view, он работает как ожидалось:

Дома Все клубы

но я планирую сделать больше отображений url в приложении, поэтому я хочу понять, что я делаю неправильно с url. Мне кажется, что я делаю все очень похоже на то, что описано в учебнике.

попробуйте добавить "home:" перед 'index'

попробуйте это:

<a href=" {% url 'home:index' %}  ">Home</a>
<a href=" {% url 'home:clubs' %} ">All clubs</a> 

Необходимо добавить пространство имен

urlpatterns = [
   
    path('home/', include('home.urls','home'),namespace = 'home'),    
    path('admin/', admin.site.urls),
    path('', RedirectView.as_view(url='home/')),    
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Вы использовали app_name, тогда имена представлений будут "namespace" с:

<a href="{% url 'home:index' %}">Home</a>
<a href="{% url 'home:clubs' %}">All clubs</a>
Вернуться на верх