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

这是我的root 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)),
)

这是我的urls.py在应用程序/polls/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'),
)

正确的方法是什么?谢谢!

有帮助吗?

解决方案

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

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

这可能不是您想要的。这 include 功能在 urlpatterns 在root urls.py文件中指定 "polls/" 作为所有人的前缀 urlpatterns 在民意调查应用程序中。因此,在民意调查/urls.py文件中,您不应指定 "polls/" 再次前缀,因为它将引起重复的前缀。

其他提示

您如何运行Django实例?如果您在Apache中配置了多个VHOST,则 /应用程序中的每个Django实例都有其自己的URL.PY。

我这样做是为了工作:

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'),
)

我猜这些民意调查部分是在root urlconf中照顾的

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top