首页 > 解决方案 > 未找到“display_data”的反向。“display_data”不是有效的视图函数或模式名称

问题描述

尝试加载主页时出现以下错误:

Reverse for 'display_data' not found. 'display_data' is not a valid view function or pattern name

我的views.py文件如下:

def home(request):
    #query_results = QRC_DB.objects.all()
    return render(request, 'display_data.html')

def display_data(request,component):
    #query_results = QRC_DB.objects.all()
    return HttpResponse("You're looking at the component %s." % component)

我的app下的urls.py文件如下:

from django.urls import path
from fusioncharts import views

urlpatterns = [
        path('home/', views.home, name=''),
]

项目下的urls.py文件如下:

from django.contrib import admin
from django.urls import path,include
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('fusioncharts.urls'))
]

而我的html文件(display_data)代码如下:

{% block content %}
  <h3>Display the test results</h3>
  <div id="container" style="width: 75%;">
    <canvas id="display-data"></canvas>
    <li><a href="{% url 'display_data' 'SQL' %}">SQL</a></li>
  </div>
{% endblock %}

谁能帮我找出错误?

谢谢。

标签: pythondjangodjango-views

解决方案


您的urls.py文件不包含任何display_data.

当您尝试单击 HTML 标记中呈现的链接时,即 <li><a href="{% url 'display_data' 'SQL' %}">SQL</a></li>

它试图解析 URL display_data

首先,它检查根urls.py文件。其中:

path('admin/', admin.site.urls),
path('', include('fusioncharts.urls'))

它与第二个匹配。然后它加载fusioncharts.urlsfusioncharts.urls不包含任何 URL display_data。这就是您收到错误的原因。

urls.py文件应该是这样的:

from django.urls import path
from fusioncharts import views

urlpatterns = [
        path('home/', views.home, name=''),
        path('display_data/<str:arg>', views.display_data, name='display_data'),

]

推荐阅读