Django中一个URL中有两个应用程序



我尝试将两个应用程序链接到一个URL。我找到了一个例子,其中可以使用"include"命令和每个应用程序的两个单独的"urls.py"。

所以,我试着这么做,但仍然只有一个应用程序在页面上工作。。。请帮帮我。

我的主URL配置:

from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
 # Examples:
 url(r'^admin/', include(admin.site.urls)),
 url(r'^', include('joins.urls')),
 url(r'^', include('item.urls')),
 url(r'^items/get/(?P<item_id>d+)$', 'item.views.item', name='item'),
 url(r'^(?P<ref_id>.*)$', 'joins.views.share', name='share'),
)

我的第一个应用程序URL配置:

from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
 # Examples:
 url(r'^', 'joins.views.home', name='home'),
)

我的第二个应用程序URL配置:

from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
 # Examples:
 url(r'^', 'item.views.items', name='home'),
)
不幸的是,您的整个方法都是错误的。视图完全负责响应URL并返回响应。谈论在一个URL上有两个视图是没有意义的。

如果您需要一个URL中的两个应用程序提供的功能,那么可以考虑将共享功能抽象为实用程序方法、模板标记或上下文处理器。

将美元符号添加到正则表达式:

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

如果没有$^正则表达式将匹配所有URL。

当然,item.views.items无论如何都不会工作(django执行第一个匹配的url),但item应用程序中的其他视图也会正常工作。

我想你想要这样的东西:

 url(r'^joins/', include('joins.urls')),
 url(r'^items/', include('item.urls')),

请参阅:https://docs.djangoproject.com/en/1.7/topics/http/urls/#including-其他urlcofs

@s_spirit一个URL需要两个视图吗?要做到这一点,请编写一个同时获得两个模型的视图,将这两个模型都传递给渲染函数,并制作一个模板,显示每个模型所需的内容。使两个url相同只会做第一个匹配所做的事情——joel goldstick 2小时前

相关内容

  • 没有找到相关文章

最新更新