Джанго: Реверс для '' не найден.'' не является допустимой функцией просмотра или именем шаблона - PullRequest
0 голосов
/ 03 февраля 2019

Я делаю проект начального уровня и столкнулся с этой проблемой. urls.py проекта :

urlpatterns = [
    path('', TemplateView.as_view(template_name='welcome.html'), name='welcome'),
    path('accounts/', include('login.urls')),
    path('accounts/', include('django.contrib.auth.urls')), # use auth app
    path('ride_sharing/', include('ride.urls')),
    path('admin/', admin.site.urls),
]

urls.py приложения для езды :

app_name = 'ride'

urlpatterns = [
    path('', views.home, name='home'),
    path('requests/', views.view_requests, name='view_requests'),
    path('new-request/', views.request_new, name='request_new'),
    path('driver/', views.driver_home, name='driver_home'),
    path('new-share-request/', views.sharer_request_new, name='sharer_request_new'),
]

views.py изПриложение Ride, только неполные коды :


def home(request):
    return render(request,'ride/home.html')


def view_requests(request):
    return render(request, 'ride/home.html')


def request_new(request):
    return render(request, 'ride/home.html')


def driver_home(request):
    return render(request, 'ride/home.html')


def sharer_request_new(request):
    return render(request, 'ride/home.html')

И home.html :

<!-- ride/templates/ride/home.html -->

{% extends 'ride/base.html' %}

{% block title %}HOmeeeeeeeeeee {% endblock %}

{% block content %}
{% if user.is_authenticated %}
  Hi {{ user.username }}
    <p><a href="{% url 'ride:view_requests'  %}">View My Requests</a></p>
    <p><a href="{% url 'ride:request_new' %}">Request a Ride</a></p>
    <p><a href="{% url 'ride:driver_home' %}">Driver Entrance</a></p>
    <p><a href="{% url 'ride:sharer_request_new' %}"></a></p>
    <p><a href="{% url 'logout' %}">Logout</a></p>
{% else %}
  <p>Welcome to CJ & XY's Ride Sharing Service!</p>
  <a href="{% url 'login' %}">login</a> |
  <a href="{% url 'login:signup' %}">signup</a>
{% endif %}
{% endblock %}

Но после того, как я войду (я делаю LOGIN_REDIRECT_URL = 'home') Я получаю:

NoReverseMatch at /ride_sharing/
Reverse for 'view_requests' not found. 'view_requests' is not a valid view function or pattern name.

Как это могло произойти?Могут ли некоторые дать мне ключ?Большое вам спасибо!

1 Ответ

0 голосов
/ 03 февраля 2019

Я вижу две проблемы с вашими URL.Прежде всего, когда вы включаете файл app.urls, вы должны дать ему пространство имен.Это позволяет в обратном порядке найти правильное местоположение файла urls.py и облегчает вашу жизнь.Ваши включаемые URL-адреса должны выглядеть следующим образом.

path('ride_sharing/', include('ride.urls', namespace="ride")),

Вторая проблема заключается в том, что вы не предоставили правильный реверс для вашего LOGIN_REDIRECT_URL = "ride:home"

Тогда вам будет хорошо идти.

...