Django Url包括相同的应用程序不同的根

时间:2013-05-20 18:06:03

标签: django django-urls

我可以在两个不同的根目录中包含相同的应用程序URL吗?

我的意思是,我有这个

(r'^event/', include('quip.apps.event.urls')),

但我希望有那个

(r'^event/', include('quip.apps.event.urls')), #display event e.g.  event/my-event-slug
(r'^events/', include('quip.apps.event.urls')), #filter events e.g. events/today/somewhere

我的'quip.apps.event.urls'中需要不同的行为。我想到的唯一解决方案是创建两个url文件,但我认为这不是一个非常好的解决方案。

(r'^event/', include('quip.apps.event.someurls')),
(r'^events/', include('quip.apps.event.otherurls')),

任何想法?我确定这是一个愚蠢的问题。

1 个答案:

答案 0 :(得分:2)

是的,你可以。为了保持模块化,我会将urls作为一个包:

(r'^event/', include('quip.apps.event.urls.someurls')),
(r'^events/', include('quip.apps.event.urls.otherurls')),

目录结构将在哪里

event/
  __init__.py
  urls/
     __init__.py
     someurls.py
     otherurls.py

另外,在urls/__init__.py你可以做

from .someurls import *
from .otherurls import *