Django管理urlpatterns问题

时间:2012-09-16 00:23:57

标签: regex django django-admin django-views

我正在尝试完成一个Django教程(https://docs.djangoproject.com/en/dev/intro/tutorial03/)并遇到了一个问题,我认为这是我对正则表达式的理解include()函数。

我有问题的urls.py:

from django.conf.urls import patterns, include, url
from django.contrib import admin

admin.autodiscover()

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

,引导我(在浏​​览http://localhost:8000/admin/时)到polls.urls的详细视图 - 其代码为:

from django.conf.urls import patterns, url

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

我明白为什么它与民意调查相匹配并且被带到polls.urls。有什么想法吗?

注意:当我注释掉url(r'^polls/, include('polls.urls')),行时,我可以再次看到管理页面

谢谢!

1 个答案:

答案 0 :(得分:1)

O.K - 所以我设法解决了这个问题,但我并不完全确定如何。这是一个离开它并处理其他问题的情况,当我回来时,它是固定的!所以,我改变了一些事情:

1。)包含{% load url from future %}以确保我的模板中的向前兼容性

2。)将detail.html中的表单操作更改为<form action="/polls/{{ poll.id }}/vote/" method="post">(来自<form action="{% url 'polls.views.vote' poll.id %}" method="post">

3.)最后,也许最重要的是 - 将我的语法排除在外!在我的views.py文件中,我有Return HttpResponseRedirect(reverse('polls_results', args=(p.id,)))而不是Return HttpResponseRedirect(reverse('poll_results', args=(p.id,)))

我仍然不知道是哪一个做了但是,如果有人和我在同一个位置,那么这三个人的某些组合就会做到!