使用参数'()'和未找到关键字参数'{}'来反转'home'。 0个图案

时间:2017-05-08 02:04:49

标签: python django django-urls

我正在尝试做的简要描述是我试图通过点击'rates.html'网页上的徽标来访问我的'home.html'网页(存在于家庭应用程序中)它存在于费率应用程序上),我试图实现这一点的方式如下。

我在这里看了其他类似的问题,他们似乎都忘记在代码的appname \ urls.py部分指定命名空间部分。我觉得我已经在urls.py中正确指定了app_name ='[namespace]'。

它显示的特定错误的确切错误是:

使用参数'()'和未找到关键字参数'{}'来反转'home'。尝试了0种模式:[]

错误突出显示'rate.html'上的一行html代码:

<div id="logoholder">
    <a href="**{% url 'getrate:home' %}**"><img src="{%static 
    'home/images/transparentWatermark.png' %}" width="40" height="40" 
    style="margin:5px 10px"></a>
</div>

的getRate \ urls.py:

from django.conf.urls import url, include
from . import views

app_name = 'getrate'

urlpatterns = [
    url(r'^$', views.ViewRate, name='rate'),
    url(r'^home/', include('home.urls', namespace='home')),
]

家\ urls.py

from django.conf.urls import url, include
from . import views

app_name = 'home'

urlpatterns = [

    url(r'^$', views.ViewHome, name='home'),
]

mysite的\ urls.py

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^home/', include('home.urls', namespace='home')),
    url(r'^getrate/', include('getrate.urls', namespace='getrate')),
]

我必须解释错误的是rate.html有一个我可以点击的公司徽标,它通过{%url'getrate:home'%}触发getrate \ urls.py。 getrate \ urls.py代码中包含home \ urls.py。触发此部分,因为它在该行代码上具有名称空间home。现在它通过home \ urls.py查看并最终结束其正则表达式匹配。让我知道我的错误。

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

虽然答案解决了直接问题,但它没有实现我试图执行的功能(这是重定向到另一个应用程序的html页面)。我没有正确理解的是网址工作流程。我想从你使用url的任何一个应用程序,它首先通过该应用程序的urls.py代码,而不是主网站urls.py代码。

实际工作流程来自mysite / urls.py - &gt; (如果导入和使用包括库) - &gt; app1 / urls.py - &gt; app2 / urls.py - &gt;应用程序#/ urls.py。所以总是从主urls.py

开始

由于对此概念的误解,我的错误是试图将每个app的每个urls.py代码链接到彼此,从而导致各种错误,无限循环等。