【问题标题】:app name appearing twice in url | Django应用名称在 url 中出现两次 |姜戈
【发布时间】:2013-04-15 01:51:39
【问题描述】:

在我的主页上,我有一个注册页面的链接。

在我的浏览器中,主页位于127.0.0.1:8000/app_name/

当我点击链接注册时,它会将我带到127.0.0.1:8000/app_name/app_name/register/,这会导致 404 错误。

但它应该带我到127.0.0.1:8000/app_name/register/,它会显示正确的 html。

在我的views.py中,我有注册页面:

return render(request, 'app_name/register.html', {'form': form})

在我的应用程序 urls.py 中,对于我的注册页面:

url(r'^register/$', views.register, name='register'),

为什么我的 url 中出现重复的 app_name?

更新:

这是我的项目 urls.py:

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

from django.contrib import admin

admin.autodiscover()

urlpatterns = patterns('',
    url(r'^app_name/', include('app_name.urls')),
    url(r'^admin/', include(admin.site.urls)),
)

这是我的 app_name urls.py:

from django.conf.urls import patterns, url

from app_name import views

urlpatterns = patterns('',
    url(r'^$', views.index, name='index'),
    url(r'^register/$', views.register, name='register'),
)

【问题讨论】:

  • 请在settings.py中发布您的注册页面的html代码链接和您的TEMPLATE_DIRS
  • 我的 TEMPLATE_DIRS 是空的(每件事都被注释掉了)。这可能是问题吗?我这里应该有什么?
  • 你是如何为注册链接建立链接的?
  • 你需要在 settings.py 中添加模板的路径,然后它只提供 html 页面

标签: django


【解决方案1】:

请在您的项目目录中添加模板目录并在 settings.py 中添加此路径(您可以添加绝对路径和相关路径)在此模板文件夹中添加您的 html 页面

read my answer 在 settings.py 中添加路径

并在您的 html 中链接到注册页面

<a href="/app_name/register/">Sign Up</a> 

你的看法

return render(request, 'register.html', {'form': form})

【讨论】:

  • 糟糕,以为它可以正常工作,但仍然不行。所以 URL 现在是正确的,但是当我单击链接时,我在 register.html 上收到 TemplateDoesNotExist 错误。
  • 好的,刚刚修好了。我在视图中需要“app_name/register.html”。
  • 不,我说我的观点应该是:return render(request, 'app_name/register.html', {'form': form}) 而不仅仅是 'register.html'
  • 我不明白你的文件夹结构是如何放置的。所以.. :)
【解决方案2】:

您是在应用程序 urls.py 还是项目中声明 url? (我想知道它经历了多少模式声明)

【讨论】:

  • 我在我的应用程序 urls.py 中声明它
  • 你能分享你的应用程序中 urls.py 的代码以及基础项目中的代码吗?我怀疑问题潜伏在其中的某个地方。
猜你喜欢
  • 1970-01-01
  • 2020-08-17
  • 1970-01-01
  • 1970-01-01
  • 2021-07-02
  • 2015-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多