我是新来的。我正在尝试设置网址。我在“我的网站”项目下有两个应用程序。在mysite的url.py中,我包含了来自两个应用程序(称为“login”和“org”)的url
mysite/url.py
urlpatterns = [
url(r'^login/', include('login.urls')),
url(r'^org/', include('org.urls')),
]
登录/url.py
app_name = 'login'
urlpatterns = [
url(r'^signup/$', login_views.signup, name='signup'),
]
org/url.py
app_name = 'org'
urlpatterns = [
url(r'^organizations/add/$', views.addorg, name='addorg'),
]
以这种方式设置后,“我的网站URL”将变成以下内容:
site.com/login/login/signup
site.com/org/organizations/add
我想要的网址,使他们像下面。
site.com/login/signup
site.com/organizations/add
如何让“includes”工作?如果我将mysite/url.py更改为以下文件,它是否可以工作?
urlpatterns = [
url(r'^$', include('login.urls')),
url(r'^$', include('org.urls')),
]
当有多个应用程序时,是否有更好的方法来设置url?
谢谢
mysite/url.py
登录/url.py
如果你用这种方式把你的网址。。。
您的注册url将是
site.com/login/signup
公式是- [您的站点域+main_project/url.py中的url+任何_app/url.py中的url]所以要更正您的组织url- 你应该重构你的我的网站/url.py为-
在您的orgs/url.py中
我希望有帮助。
在您描述的设置中,登录url不是
'site.com/login/login/signup'
,而是'site.com/login/signup'
。第二个'login/'
来自哪里?你建议的解决方案
如果两个应用程序中没有出现相同的url,则通常可以工作。但这并不理想,因为登录urs中的所有模式都将不必要地尝试用于所有请求。
因此,您可能需要考虑删除
specific_app.urls
内部前缀,特别是当这些前缀对于应用程序的所有视图都相同时。把它交给任何人使用并包含他们想要在哪个路径下包含该应用程序(这里是:mysite.url)。生成的URL将是:
相关问题 更多 >
编程相关推荐