【问题标题】:Django: Reverse for '' not found. '' is not a valid view function or pattern nameDjango:找不到''的反向。 '' 不是有效的视图函数或模式名称
【发布时间】:2019-06-27 03:32:20
【问题描述】:

我正在做一个入门级项目,我遇到了这个问题。 项目的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,只是代码不完整:


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.

怎么会这样?有人能给我钥匙吗?非常感谢!

【问题讨论】:

    标签: django django-models django-templates django-views


    【解决方案1】:

    我发现您的网址存在两个问题。首先,当你包含一个 app.urls 文件时,你应该给它一个命名空间。这允许反向找到 urls.py 文件的正确位置,并使您的生活更轻松。您的包含 URL 应如下所示。

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

    第二个问题是您没有为您的LOGIN_REDIRECT_URL = "ride:home" 提供正确的反向

    那你应该可以走了。

    【讨论】:

      猜你喜欢
      • 2018-01-25
      • 2019-04-21
      • 2021-07-18
      • 2019-04-06
      • 2021-04-21
      • 1970-01-01
      • 2023-02-06
      • 2020-12-01
      • 2021-05-18
      相关资源
      最近更新 更多