Ошибка NoReverseMatch, хотя все должно быть установлено

#python #django #django-rest-framework

#python #django #django-rest-framework

Вопрос:

https://pastebin.com/EBfq1SRL

Получение этой ошибки, несмотря на то, что именно так настроены мои представления и URL-адреса:

 class MyProfile(generic.TemplateView):
    template_name = 'profiletabs/user-profile.html'
    extra_context = {'profile': 'active-page'}
  
 from django.urls import path, include
from . import views
from rest_framework.routers import DefaultRouter


router = DefaultRouter()
router.register('tags', views.TagViewSet)
router.register('bots', views.BotViewSet)

app_name = 'profile'
urlpatterns = [
    path('', views.MyProfile.as_view(), name='my_profile'),
    path('settings/', include(router.urls)),
]
  

Ответ №1:

Это исключение «NoReverseMatch» возникает, когда URL, который вы отменяете, не существует. Проблема, безусловно, возникает в ваших шаблонах, когда вы пытаетесь повторно использовать некоторые URL-адреса; чтобы избежать этого, вы можете проверить, существовал ли URL-адрес раньше; вот так:

   {% url 'url-name' as the_url %}
  {% if the_url %}
     <a href="{{ the_url }}">Hello</a>
  {% endif %}
  

смотрите здесь

Комментарии:

1. В этом проблема, хотя вы можете четко видеть, что URL-адрес ‘my_profile’ указан в шаблонах URL, поэтому просто запуск testcase для игнорирования страницы, которую я пытаюсь загрузить, не решит проблему, она просто проигнорирует ее. и ошибка появилась только после того, как я подключил маршрутизатор.