首页 > 解决方案 > 网站运行正常但测试出错

问题描述

当网站运行良好时,我在测试中遇到此错误。控件是应用程序名称 有人可以建议在 url 或 html 行中进行一些更改

class TestUrls(SimpleTestCase):
    def test_index_url_is_resolved(self):
        url = reverse('index')
        print(resolve(url))

我用它进行测试,它显示以下错误

ERROR: test_index_url_is_resolved (control.tests.test_urls.TestUrls)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/bhavya/Website/control/tests/test_urls.py", line 7, in test_index_url_is_resolved
    url = reverse('index')
  File "/usr/lib/python3/dist-packages/django/urls/base.py", line 90, in reverse
    return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
  File "/usr/lib/python3/dist-packages/django/urls/resolvers.py", line 673, in _reverse_with_prefix
    raise NoReverseMatch(msg)
django.urls.exceptions.NoReverseMatch: Reverse for 'index' not found. 'index' is not a valid view function or pattern name.

----------------------------------------------------------------------
Ran 1 test in 0.003s

这是 index html 页面的链接

<a class="navbar-brand" href = "{% url 'control:index' %}">CCTV</a>

这是 urlpatterns

urlpatterns = [

    #Control
    url(r'^$',views.IndexView.as_view(),name='index'),

]

这是视图中的功能:

class IndexView(generic.ListView):
template_name = 'control/index.html'
# success_url = reverse_lazy('control:index')
def get_queryset(self):
    return Camera.objects.all()

标签: pythondjangodjango-testing

解决方案


我不知道这是否是问题所在,但如果您为您的应用使用名称,例如

app_name = "control"

那么您必须在传递给反向函数的字符串中包含此名称,如下所示:

url = reverse('control:index')


推荐阅读