【发布时间】:2023-04-03 19:35:01
【问题描述】:
我的站点中有 2 个应用程序:
- 用户
- 基础
主 url conf 总是使用 appname 为 base/index.html 的 url 当从 base/index.html 提供 url 操作说 href="login" 时,它会自动 搜索“base/login.html”
我想让它切换应用并搜索“users/login.html”
如何强制它在 html href 或 urlconf 中切换应用程序。我更喜欢使用 url conf,但不知道如何使用。
用户/url.py
from django.conf.urls import patterns, include, url
from emp_users.views import *
from django.conf import settings
from django.views.generic.base import RedirectView
urlpatterns = patterns('',
url(r'^index/$', RedirectView.as_view(url='/hr_base/index', permanent=False), name='index'),
url(r'^new_user/$', register_user),
url(r'^new_hr_user/$', register_hr_user),
)
site/urls.py : 这是主项目 urls.py
urlpatterns = patterns('',
url(r'^base/index$','hr_base.views.index'),
url(r'^users/', include('emp_users.urls')),
)
urlpatterns += patterns('',
(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT},),# 'show_indices':True}),
)
site/base/templates/base/index.html
<a href="login">Login</a>
这应该指向生成 url users/login 然后访问 user/views.py
【问题讨论】:
-
可能发布您的 URL 路由和模板示例将更好地说明您的情况。
-
没有所谓的“切换应用程序”。应用程序不是您所处的事物,它们只是功能的集合。
-
要详细说明@DanielRoseman 所说的内容,请查看文档中的这一点,"Projects vs. apps," 解释了 django 的“应用程序”是什么意思,以及它如何融入您的整个项目。 “应用程序是做某事的 Web 应用程序 - 例如,Weblog 系统、公共记录数据库或简单的投票应用程序。项目是特定网站的配置和应用程序的集合。一个项目可以包含多个应用程序。一个应用程序可以在多个项目中。”强调我的。
-
我得到了那部分,但我需要的是 url 实际切换。 base/ 被自动添加到 url 模式中。我需要一种方法将其更改为 user/
-
无论我提供什么网址,都会为其添加 base/ 前缀。如果我提供 url users/new_user,它将使其成为 base/users/new_user 并返回 404
标签: html django python-3.x