Django - 找不到“”的反向。 '' 不是有效的视图函数或模式名称
Django - Reverse for '' not found. '' is not a valid view function or pattern name
我正在研究我的课程项目,但我现在完全被困住了。我正在创建一个网站以通过 paypal 销售产品,但 paypal return/cancel 页面未正确呈现。我已经按照课程中的示例进行操作并检查了代码一百次,但显然我遗漏了一些东西。
我在转到产品时遇到错误,点击立即购买,登录到贝宝,然后取消购买或购买产品并 return 到商家页面。
paypal_return.html 和 paypal_cancel.html 是保存在 templates/paypal/
下的 2 个模板
有人能看到我遗漏了什么吗?
在这里你可以看到完整的代码https://github.com/IreneG5/spss_online
回溯
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/paypal-cancel/
Django Version: 1.11.4
Python Version: 2.7.12
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_forms_bootstrap',
'paypal.standard.ipn',
'home',
'accounts',
'paypal_store',
'products']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Template error:
In template C:\Users\irene\Documents\Full-Stack-Developer\Stream3\Project\spss_online\templates\base.html, error at line 10
Reverse for '' not found. '' is not a valid view function or pattern name. 1 : {% load staticfiles %}
2 : <!DOCTYPE html>
3 : <html lang="en">
4 : <head>
5 : <meta charset="UTF-8">
6 : <title>Buy SPSS Online</title>
7 : <meta name="viewport" content="width=device-width, initial-scale=1.0">
8 : <meta name="description" content="">
9 : <meta name="author" content="">
10 : <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.7/cerulean/bootstrap.min.css">
11 : <link rel="stylesheet" href="{% static 'css/style.css' %}">
12 :
13 :
14 : </head>
15 : <body>
16 : <div class="container">
17 : <div class='container-fluid'>
18 : <nav id="menu" class="navbar navbar-inverse">
19 : <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
20 : <span class="icon-bar"></span>
Traceback:
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\core\handlers\exception.py" in inner
41. response = get_response(request)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\core\handlers\base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\core\handlers\base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\irene\Documents\Full-Stack-Developer\Stream3\Project\spss_online\paypal_store\views.py" in paypal_cancel
15. return render(request, 'paypal/paypal_cancel.html', args)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\shortcuts.py" in render
30. content = loader.render_to_string(template_name, context, request, using=using)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\loader.py" in render_to_string
68. return template.render(context, request)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\backends\django.py" in render
66. return self.template.render(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\base.py" in render
207. return self._render(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\base.py" in _render
199. return self.nodelist.render(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\base.py" in render
990. bit = node.render_annotated(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\base.py" in render_annotated
957. return self.render(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\loader_tags.py" in render
177. return compiled_parent._render(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\base.py" in _render
199. return self.nodelist.render(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\base.py" in render
990. bit = node.render_annotated(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\base.py" in render_annotated
957. return self.render(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\loader_tags.py" in render
72. result = block.nodelist.render(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\base.py" in render
990. bit = node.render_annotated(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\base.py" in render_annotated
957. return self.render(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\defaulttags.py" in render
458. url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\urls\base.py" in reverse
91. return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\urls\resolvers.py" in _reverse_with_prefix
497. raise NoReverseMatch(msg)
Exception Type: NoReverseMatch at /paypal-cancel/
Exception Value: Reverse for '' not found. '' is not a valid view function or pattern name.
当您使用 url 标签时,您应该对字符串文字使用引号,例如:
{% url 'products' %}
目前 product
被视为变量并在错误消息中计算为 ''
。
- 指定 url 的语法是
{% url namespace:url_name %}
。因此,请检查您是否在 urls.py. 中添加了 app_name
- 就我而言,我拼错了 url_name。 urls.py 具有以下内容
path('<int:question_id>/', views.detail, name='question_detail')
而 index.html 文件具有以下条目 <li><a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a></li>
。请注意名称不正确。
我发现的常见错误是忘记定义
你的 url 在 yourapp/urls.py
我们不需要任何建议!!
请解决..
修复 urls.py 文件中的 urlpatterns
比如我的应用名称是"simulator",
我的 URL 模式 login
和 logout
看起来像
urlpatterns = [
...
...
url(r'^login/$', simulator.views.login_view, name="login"),
url(r'^logout/$', simulator.views.logout_view, name="logout"),
...
...
]
第 10 行 s
和 t
之间有一个 space。应该是一个字:stylesheet
.
在模式名称前未指定 app
名称时,我收到了同样的错误。
就我而言:
app-name
:博客
pattern-name
: post-删除
reverse_lazy('Blog:post-delete')
成功了。
如果不在路径字段中定义名称,通常会出现错误。
例如:path('crud/',ABC.as_view(),name="crud")
就我而言,我所做的是在相应模板中的 url 标记中的一个错误。所以,在我的 url 标签中,我有类似
的东西
{% url 'polls:details' question.id %}
在视图中,我写了类似这样的内容:
def 详细信息(请求,question_id):
代码在这里
因此,您可能想要检查的第一件事是是否拼写正确。接下来你可以做的就是上面的人所建议的。
在urls.py
中输入相同的名字
path('detail/<int:id>', views.detail, name="detail"),
在我的例子中,我没有将 namespace_name 放在 url 标签中,例如:{% url 'url_name or pattern name' %}.
您必须指定 namespace_name,例如:{% url 'namespace_name:url_name or pattern name' %}.
说明:在项目urls.pypath('', include('blog.urls',namespace='blog')),
和应用的urls.py 你必须指定 app_name。喜欢 app_name = 'blog'
。 namespace_name 是 app_name.
将商店名称添加到模板中,例如 {% url 'app_name:url_name' %}
App_name = 商店
在urls.py中,
path('search', views.searched, name="searched"),
<form action="{% url 'store:searched' %}" method="POST">
就我而言,此错误是由于 mismatched
url 名称引起的。例如,
<form action="{% url 'test-view' %}" method="POST">
urls.py
path("test/", views.test, name='test-view'),
就我而言,发生此错误是因为我忘记添加 app_name
和 url_name
。
下面是我的应用 urls.py
app_name = "wikis"
urlpatterns = [
path("", views.index, name="index"),
path("wiki/<str:name>", views.get_page, name="get_page"),
]
下面是我函数的 return 语句,我忘记将 app_name
倒过来 URL
return HttpResponseRedirect(reverse("get_page", kwargs={'name':title}))
正确的代码是
return HttpResponseRedirect(reverse("wikis:get_page", kwargs={'name':title}))
应用名称=演示
url=/学生
href="{% url 'demo:student' %}"
确保在 :(冒号)
之前或之后不应该有 space
*在使用 HttpResponseRedirect 和 reverse 时始终确保,您在 reverse 中指定的名称与您在 urls.py
中为路径指定的名称相同
这就是我遇到的问题,我通过反复试验发现*
*在使用 HttpResponseRedirect 和 reverse 时始终确保,您在 reverse 中指定的名称与您在 urls.py
中为路径指定的名称相同
'return HttpResponseRedirect(reverse("index"))
路径(“索引/”,views.index,名称=“索引”)'
这就是我遇到的问题,我通过反复试验发现*
在应用程序的 urls.py 文件中指定 app_name
并使用此 app_name 以及 url 在模板中:
syntax --> {% url 'app_name:urlname' %}
app_name = "demo". # right above url patterns in app
url_patterns = [
('login/', views.login, name = 'login')
]
<a href="{% url 'demo:login' %}". # Use this in templatep
注意: 使用 urls.py 文件中 url_patterns
正上方的 app_name
。
我遇到了同样的问题。错误是我为多个 url 模式声明了相同的名称。
path('file', views.sender, name='sender'),
这里的名字对于不同的url应该是不同的和唯一的。
如果您忘记在项目 url 中添加应用程序 url,您也会遇到此错误 url
示例:
Project/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('app.urls')),
]
你有一个 store/urls.py
因此,如果您在 store/templates/store 中有 html 代码
并且您想在 app/templates/app 中添加一个带有 url 的标签到 store/templates/store 中的 html 代码
您必须在 Project/urls.py
中包含 store/urls.py
Project/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('app.urls')),
path('', include('store.urls')),
]
假设在您的模板 home.html 中,您有一个执行 POST 请求的表单,例如:
<form id="form_id" action = "{% url 'home' %}" method = "post" > .. </form>
在你的urls.py中你有
url(r'^$', views.home_view, name='home')
在您看来,您可以像这样检查模板中传递的数据。
def home_view(request): print(request.POST)
重要的是在 urls.py 中声明 name='home' 并在表单的操作部分包含此 url action = "{% url 'home' %}"
您可以使用其中之一。
如果你没有 (app_name)
这就是解决方案
在urls.py
urlpatterns = [
path('', dashboard.as_view(), name='dashboard'),
]
在template.html
<a href="{% url 'dashboard' %}"></a>
如果你这样做了 (app_name)
这就是解决方案
在urls.py
app_name = 'Blog'
urlpatterns = [
path('', dashboard.as_view(), name='dashboard'),
]
在template.html
<a href="{% url 'Blog:dashboard' %}"></a>
我在测试时也遇到了同样的问题,对我来说这是在 html
中 url 为空时造成的
<td><a href="{% url '' test.id %}"><i class="fa fa-times" aria-hidden="true"></i></a></td>
所以在我通过输入 url 名称更改它之后:
<td><a href="{% url 'task_delete' test.id %}"><i class="fa fa-times" aria-hidden="true"></i></a></td>
过去两天我一直在阅读这篇文章来比较我的文章,看看为什么它不起作用。事实证明“:”之间的 space 很重要:
我的 space 在“:”和“索引”之间:
<a href="{% url 'namespace: index' %}">Home</a>
认为这值得一提,以防将来像我这样的人挠头:
冒号周围没有 space,或者“namespace”和“index”
之前或之后的任何位置
简单的解决方案是
path('detail/', views.detail, name="This_is_the_solution"),
您必须将名称值赋予 url,
<a href="{% url 'This_is_the_solution' %}"></a>
我正在研究我的课程项目,但我现在完全被困住了。我正在创建一个网站以通过 paypal 销售产品,但 paypal return/cancel 页面未正确呈现。我已经按照课程中的示例进行操作并检查了代码一百次,但显然我遗漏了一些东西。
我在转到产品时遇到错误,点击立即购买,登录到贝宝,然后取消购买或购买产品并 return 到商家页面。 paypal_return.html 和 paypal_cancel.html 是保存在 templates/paypal/
下的 2 个模板有人能看到我遗漏了什么吗?
在这里你可以看到完整的代码https://github.com/IreneG5/spss_online
回溯
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/paypal-cancel/
Django Version: 1.11.4
Python Version: 2.7.12
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_forms_bootstrap',
'paypal.standard.ipn',
'home',
'accounts',
'paypal_store',
'products']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Template error:
In template C:\Users\irene\Documents\Full-Stack-Developer\Stream3\Project\spss_online\templates\base.html, error at line 10
Reverse for '' not found. '' is not a valid view function or pattern name. 1 : {% load staticfiles %}
2 : <!DOCTYPE html>
3 : <html lang="en">
4 : <head>
5 : <meta charset="UTF-8">
6 : <title>Buy SPSS Online</title>
7 : <meta name="viewport" content="width=device-width, initial-scale=1.0">
8 : <meta name="description" content="">
9 : <meta name="author" content="">
10 : <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.7/cerulean/bootstrap.min.css">
11 : <link rel="stylesheet" href="{% static 'css/style.css' %}">
12 :
13 :
14 : </head>
15 : <body>
16 : <div class="container">
17 : <div class='container-fluid'>
18 : <nav id="menu" class="navbar navbar-inverse">
19 : <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
20 : <span class="icon-bar"></span>
Traceback:
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\core\handlers\exception.py" in inner
41. response = get_response(request)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\core\handlers\base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\core\handlers\base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\irene\Documents\Full-Stack-Developer\Stream3\Project\spss_online\paypal_store\views.py" in paypal_cancel
15. return render(request, 'paypal/paypal_cancel.html', args)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\shortcuts.py" in render
30. content = loader.render_to_string(template_name, context, request, using=using)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\loader.py" in render_to_string
68. return template.render(context, request)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\backends\django.py" in render
66. return self.template.render(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\base.py" in render
207. return self._render(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\base.py" in _render
199. return self.nodelist.render(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\base.py" in render
990. bit = node.render_annotated(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\base.py" in render_annotated
957. return self.render(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\loader_tags.py" in render
177. return compiled_parent._render(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\base.py" in _render
199. return self.nodelist.render(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\base.py" in render
990. bit = node.render_annotated(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\base.py" in render_annotated
957. return self.render(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\loader_tags.py" in render
72. result = block.nodelist.render(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\base.py" in render
990. bit = node.render_annotated(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\base.py" in render_annotated
957. return self.render(context)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\template\defaulttags.py" in render
458. url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\urls\base.py" in reverse
91. return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\django\urls\resolvers.py" in _reverse_with_prefix
497. raise NoReverseMatch(msg)
Exception Type: NoReverseMatch at /paypal-cancel/
Exception Value: Reverse for '' not found. '' is not a valid view function or pattern name.
当您使用 url 标签时,您应该对字符串文字使用引号,例如:
{% url 'products' %}
目前 product
被视为变量并在错误消息中计算为 ''
。
- 指定 url 的语法是
{% url namespace:url_name %}
。因此,请检查您是否在 urls.py. 中添加了 - 就我而言,我拼错了 url_name。 urls.py 具有以下内容
path('<int:question_id>/', views.detail, name='question_detail')
而 index.html 文件具有以下条目<li><a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a></li>
。请注意名称不正确。
app_name
我发现的常见错误是忘记定义
你的 url 在 yourapp/urls.py
我们不需要任何建议!! 请解决..
修复 urls.py 文件中的 urlpatterns
比如我的应用名称是"simulator",
我的 URL 模式 login
和 logout
看起来像
urlpatterns = [
...
...
url(r'^login/$', simulator.views.login_view, name="login"),
url(r'^logout/$', simulator.views.logout_view, name="logout"),
...
...
]
第 10 行 s
和 t
之间有一个 space。应该是一个字:stylesheet
.
在模式名称前未指定 app
名称时,我收到了同样的错误。
就我而言:
app-name
:博客
pattern-name
: post-删除
reverse_lazy('Blog:post-delete')
成功了。
如果不在路径字段中定义名称,通常会出现错误。
例如:path('crud/',ABC.as_view(),name="crud")
就我而言,我所做的是在相应模板中的 url 标记中的一个错误。所以,在我的 url 标签中,我有类似
的东西{% url 'polls:details' question.id %}
在视图中,我写了类似这样的内容:
def 详细信息(请求,question_id): 代码在这里
因此,您可能想要检查的第一件事是是否拼写正确。接下来你可以做的就是上面的人所建议的。
在urls.py
中输入相同的名字 path('detail/<int:id>', views.detail, name="detail"),
在我的例子中,我没有将 namespace_name 放在 url 标签中,例如:{% url 'url_name or pattern name' %}.
您必须指定 namespace_name,例如:{% url 'namespace_name:url_name or pattern name' %}.
说明:在项目urls.pypath('', include('blog.urls',namespace='blog')),
和应用的urls.py 你必须指定 app_name。喜欢 app_name = 'blog'
。 namespace_name 是 app_name.
将商店名称添加到模板中,例如 {% url 'app_name:url_name' %}
App_name = 商店
在urls.py中,
path('search', views.searched, name="searched"),
<form action="{% url 'store:searched' %}" method="POST">
就我而言,此错误是由于 mismatched
url 名称引起的。例如,
<form action="{% url 'test-view' %}" method="POST">
urls.py
path("test/", views.test, name='test-view'),
就我而言,发生此错误是因为我忘记添加 app_name
和 url_name
。
下面是我的应用 urls.py
app_name = "wikis"
urlpatterns = [
path("", views.index, name="index"),
path("wiki/<str:name>", views.get_page, name="get_page"),
]
下面是我函数的 return 语句,我忘记将 app_name
倒过来 URL
return HttpResponseRedirect(reverse("get_page", kwargs={'name':title}))
正确的代码是
return HttpResponseRedirect(reverse("wikis:get_page", kwargs={'name':title}))
应用名称=演示 url=/学生
href="{% url 'demo:student' %}"
确保在 :(冒号)
之前或之后不应该有 space*在使用 HttpResponseRedirect 和 reverse 时始终确保,您在 reverse 中指定的名称与您在 urls.py
中为路径指定的名称相同这就是我遇到的问题,我通过反复试验发现*
*在使用 HttpResponseRedirect 和 reverse 时始终确保,您在 reverse 中指定的名称与您在 urls.py
中为路径指定的名称相同'return HttpResponseRedirect(reverse("index")) 路径(“索引/”,views.index,名称=“索引”)'
这就是我遇到的问题,我通过反复试验发现*
在应用程序的 urls.py 文件中指定 app_name
并使用此 app_name 以及 url 在模板中:
syntax --> {% url 'app_name:urlname' %}
app_name = "demo". # right above url patterns in app
url_patterns = [
('login/', views.login, name = 'login')
]
<a href="{% url 'demo:login' %}". # Use this in templatep
注意: 使用 urls.py 文件中 url_patterns
正上方的 app_name
。
我遇到了同样的问题。错误是我为多个 url 模式声明了相同的名称。
path('file', views.sender, name='sender'),
这里的名字对于不同的url应该是不同的和唯一的。
如果您忘记在项目 url 中添加应用程序 url,您也会遇到此错误 url
示例: Project/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('app.urls')),
]
你有一个 store/urls.py
因此,如果您在 store/templates/store 中有 html 代码 并且您想在 app/templates/app 中添加一个带有 url 的标签到 store/templates/store 中的 html 代码
您必须在 Project/urls.py
中包含 store/urls.pyProject/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('app.urls')),
path('', include('store.urls')),
]
假设在您的模板 home.html 中,您有一个执行 POST 请求的表单,例如:
<form id="form_id" action = "{% url 'home' %}" method = "post" > .. </form>
在你的urls.py中你有
url(r'^$', views.home_view, name='home')
在您看来,您可以像这样检查模板中传递的数据。
def home_view(request): print(request.POST)
重要的是在 urls.py 中声明 name='home' 并在表单的操作部分包含此 url action = "{% url 'home' %}"
您可以使用其中之一。
如果你没有 (app_name) 这就是解决方案
在urls.py
urlpatterns = [
path('', dashboard.as_view(), name='dashboard'),
]
在template.html
<a href="{% url 'dashboard' %}"></a>
如果你这样做了 (app_name) 这就是解决方案
在urls.py
app_name = 'Blog'
urlpatterns = [
path('', dashboard.as_view(), name='dashboard'),
]
在template.html
<a href="{% url 'Blog:dashboard' %}"></a>
我在测试时也遇到了同样的问题,对我来说这是在 html
中 url 为空时造成的<td><a href="{% url '' test.id %}"><i class="fa fa-times" aria-hidden="true"></i></a></td>
所以在我通过输入 url 名称更改它之后:
<td><a href="{% url 'task_delete' test.id %}"><i class="fa fa-times" aria-hidden="true"></i></a></td>
过去两天我一直在阅读这篇文章来比较我的文章,看看为什么它不起作用。事实证明“:”之间的 space 很重要: 我的 space 在“:”和“索引”之间:
<a href="{% url 'namespace: index' %}">Home</a>
认为这值得一提,以防将来像我这样的人挠头: 冒号周围没有 space,或者“namespace”和“index”
之前或之后的任何位置简单的解决方案是
path('detail/', views.detail, name="This_is_the_solution"),
您必须将名称值赋予 url,
<a href="{% url 'This_is_the_solution' %}"></a>