我尝试将两个应用程序链接到一个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(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小时前