0

我正在关注 Django 网站上的教程,但我正在尝试对其进行扩展。我喜欢将所有应用程序放在“应用程序”文件夹中的组织方案。我正在尝试找出包含 urls.py 的正确方法,以便将所有内容链接在一起。

这是我的根 urls.py:

from django.conf.urls.defaults import *
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    (r'^polls/', include('apps.polls.urls')),
    (r'^admin/', include(admin.site.urls)),
)

这是我在 apps/polls/urls.py 中的 urls.py:

from django.conf.urls.defaults import *

urlpatterns=patterns('polls.views',
    (r'^polls/$', 'index'),
    (r'^polls/(?P<poll_id>\d+)/$', 'detail'),
    (r'^polls/(?P<poll_id>\d+)/results/$', 'results'),
    (r'^polls/(?P<poll_id>\d+)/vote/$', 'vote'),
)

这样做的正确方法是什么?谢谢!

4

3 回答 3

2

您当前设置它的方式......民意调查的 URL 将是:

http://your.url.here/polls/polls/235/results/

这可能不是你想要的。根 urls.py 文件中的include函数指定为polls 应用程序中 all 的前缀。因此,在 polls/urls.py 文件中,您不应该再次指定前缀,因为它会导致重复的前缀。urlpatterns"polls/"urlpatterns"polls/"

于 2010-12-27T16:27:46.160 回答
0

你是如何运行你的 Django 实例的?如果您在 Apache 中配置了多个虚拟主机,那么 /apps 中的每个 Django 实例都有自己的 urls.py。

于 2010-12-27T16:17:51.917 回答
0

我通过这样做使它工作:

urlpatterns=patterns('polls.views',
    (r'^$', 'index'),
    (r'^(?P<poll_id>\d+)/$', 'detail'),
    (r'^(?P<poll_id>\d+)/results/$', 'results'),
    (r'^(?P<poll_id>\d+)/vote/$', 'vote'),
)

我猜投票部分是在根 urlconf 中处理的

于 2010-12-27T16:26:27.790 回答