1

我正在尝试完成一个 Django 教程(https://docs.djangoproject.com/en/dev/intro/tutorial03/)并且遇到了一个问题,我认为这是我对正则表达式和包含( ) 功能。

我有问题的 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')),行时,我可以再次看到管理页面

谢谢!

4

1 回答 1

1

好的 - 所以我设法解决了这个问题,但不完全确定如何解决。这是一个离开它并解决其他问题的情况,当我回来时它已经修复了!所以,我改变的事情:

1.) 包括在内{% load url from future %}以确保我的模板中的前向兼容性

2.) 将 detail.html 中的表单操作更改为<form action="/polls/{{ poll.id }}/vote/" method="post">(from<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,)))

我仍然不知道是哪个做到的,但是,如果有人和我处于相同的位置,那么这三个的组合会做到!

于 2012-09-16T13:33:05.823 回答