因此,我为正在处理的django项目提供了一个简单的主页。左上角是该站点的徽标。在我的模板中,我有以下代码:<a href="{% url "home" %}">Company Name</a>在我的根urls.py中,我有以下内容:from django.conf.urls import patterns, include, urlurlpatterns = patterns('', url(r'^$', include('app.urls')), # The main app url(r'^login/$', include('app.urls')), # The login page)在我的app / urls.py中,我有这个:from django.conf.urls import patterns, urlfrom app import viewsurlpatterns = patterns('', url(r'^$', views.index, name='home'), # The homepage of the website url(r'^login/$', views.loginView, name='login'), # The login page of the website)现在您会认为(或者至少我会认为),当呈现索引页时,它将生成html<a href="/">Company Name</a>或类似内容。相反,我得到的是<a href="/login/">Company Name</a>。那么,为什么会发生呢?显然,这是不想要的行为。我几乎可以肯定问题出在url配置中,但我可能是错的。
2 回答

心有法竹
TA贡献1866条经验 获得超5个赞
发生这种情况是因为您要app.urls 在两个相对路径(即/和)下包含相同的文件/login。因此,正确的url名称定义只是被覆盖。
为避免这种情况,请勿在两个相对路径下包含相同的url配置文件。因此,在您的情况下,您应该创建一个新的url配置文件(例如login.urls),将与登录相关的url定义移至该新文件,然后将根url配置替换为
from django.conf.urls import patterns, url
from app import views
urlpatterns = patterns('',
url(r'^$', include('app.urls')), # The main app
url(r'^login/$', include('login.urls')), # The login page
)
添加回答
举报
0/150
提交
取消