В урлах приложения заявлено больше вью, чем есть в файле вью приложения. Как это может работать?

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

1. Возможно, вы используете урлы из другого приложения или библиотеки. В случае Django, урлы из различных приложений могут быть объединены в общий уровень при помощи механизма include. Например, в файле urls.py на верхнем уровне проекта можно иметь следующую запись:

urlpatterns = [
    # ...
    path('myapp/', include('myapp.urls')),
    # ...
]

В этом случае, урлы, объявленные в файле myapp.urls, будут доступны по адресу 'myapp/'.

2. Возможно, вы используете механизм наследования урлов. В Django есть возможность наследовать урлы от других приложений. Например, если в ваших урлах заявлено:

urlpatterns = [
    # ...
    path('myapp/', include('otherapp.urls')),
    # ...
]

Тогда урлы из otherapp будут доступны по адресу 'myapp/'.

3. Возможно, в вашем проекте используется третьесторонняя библиотека управления урлами, которая автоматически обрабатывает урлы из разных приложений и объединяет их в общий уровень. Некоторые популярные библиотеки, такие как django-admin, django-rest-framework, также могут использовать подобные механизмы.

В любом случае, если у вас объявлены урлы в уровне приложения, но соответствующие вью не определены в файле views.py, то запросы на эти урлы будут приводить к ошибке. Поэтому важно убедиться, что все заявленные в урлах вью определены и имеют корректные имена и адреса обработки запросов.