Реверс для «флота» не найден. 'fleet' не является допустимой функцией просмотра или именем шаблона - PullRequest
0 голосов
/ 04 ноября 2019

Я получаю вышеуказанную ошибку при попытке получить доступ к целевой странице.

Что мне не хватает?

Traceback

NoReverseMatch at /
Reverse for 'fleet' not found. 'fleet' is not a valid view function or pattern name.
Request Method: GET
Request URL:    http://127.0.0.1:8000/
Django Version: 2.2.6
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'fleet' not found. 'fleet' is not a valid view function or pattern name.

Вот база. html код

<button>
  `<a href="{% url 'trucks:fleet' %}"> Fleet Admin </a>
</button>

и ниже - это файл приложения urls.py

from django.urls import path

from .admin import fleet_admin_site

app_name = 'trucks'

urlpatterns = [
  path('fleet/', fleet_admin_site.urls, name="fleet"),
]

и основной файл urls.py

from django.contrib import admin
from django.urls import path, include, reverse

from django.views.generic import TemplateView


urlpatterns = [
  path('admin/', include('workers.urls')),
  path('admin/', include('trucks.urls')),
  path('', TemplateView.as_view(template_name='base.html')),
]

файл admin.py, гдеЯ расширяю AdminSite

class FleetAdminSite(admin.AdminSite):
  site_header = ''
  site_title = ''
  index_title = ''


fleet_admin_site = FleetAdminSite(name='fleet_admin')

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Вы включаете администратора флота с:

urlpatterns = [
    path('fleet/', fleet_admin_site.urls, name="fleet"),
]

Вы не можете сделать {% url 'trucks:fleet' %}, чтобы изменить fleet_admin_site.urls. Вам нужно отменить определенный URL-адрес администратора .

Например, чтобы перевернуть индекс, вы должны сделать:

{% 'trucks:fleet_admin:index' %}

В приведенном выше примере вы используете trucks потому что у вас есть app_name = 'trucks' в urls.py, fleet_admin, потому что это пространство имен в fleet_admin_site = FleetAdminSite(name='fleet_admin'), и index, потому что это представление, которое вы хотите изменить.

Наконец, name у вас path() не имеет никакого эффекта, поэтому я бы его убрал.

urlpatterns = [
    path('fleet/', fleet_admin_site.urls),
]
0 голосов
/ 04 ноября 2019

, увидев ваш код, вам нужно добавить метод или класс без какого-либо расширения

  path('fleet/', fleet_admin_site.urls, name="fleet"),

  path(route, view, kwargs=None, name=None)

см. this

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...