2015-11-10 19 views
1

我在我的基URL中有Django(Django 1.8,Python 3.4)的语法错误。以下是ir的代码:Django - 在URL文件的SyntaxError

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

from login_vacations import views as login_views 

urlpatterns = [ 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^login/$', login_views.index, name="login_vacations"), 
    url(r'^logout/$', login_views.logout_vacations, name='logout_vacations'), 
    url(r'^vacations/', include('vacations_app.urls')), 
] 

vacations_app存在于该文件夹中,并且它内部有一个urls.py文件。该错误是以下内容:

invalid syntax (urls.py, line 10) 

相反,如果我请从包括功能单引号,误差将是:

name 'vacations_app' is not defined 

如果我擦除线10完全,应用程序将正常工作。但我不明白为什么。该行上的结构与第7行(包含admin url的行)完全相同。

的vacations_app/urls.py有以下代码:

from django.conf.urls import patterns, include, url 
from django.views.generic import TemplateView 

from vacations_app import views as vacations_views 

urlpatterns = [ 
    url(r'^$', vacations_views.vacations_public_view, name='vacations_public_view'), 
    url(r'^my_vacations/$', vacations_views.my_vacations, name='my_vacations'), 
    url(r'^new_vacation/$', vacations_views.new_vacation, name='new_vacation'), 
    url(r'^show/(?P<vacation_id>\w+)/$'), vacations_views.show_vacation, name='show_vacation'), 
    url(r'^show/(?P<vacation_id>\w+)/add_destination/$'), vacations_views.add_destination_to_vacation, name='add_destination_to_vacation'), 
    ] 

错误的完整的跟踪可以在这里找到:http://dpaste.com/2A1B6DS

有人能帮助我吗?

+0

什么是'vacations_app/urls.py'的内容吗? – Alasdair

+0

您是否在settings.py的installed_apps中添加了vacations_app? –

+0

你能为你的错误提供完整的追溯吗? –

回答

3

它看起来像你有你的vacations_app/urls.py上线10两个额外的关闭括号和11现在您有:

url(r'^show/(?P<vacation_id>\w+)/$'), vacations_views.show_vacation, name='show_vacation'), 
url(r'^show/(?P<vacation_id>\w+)/add_destination/$'), vacations_views.add_destination_to_vacation, name='add_destination_to_vacation'), 

他们应该是这样的:

url(r'^show/(?P<vacation_id>\w+)/$', vacations_views.show_vacation, name='show_vacation'), 
url(r'^show/(?P<vacation_id>\w+)/add_destination/$', vacations_views.add_destination_to_vacation, name='add_destination_to_vacation'), 
-2

您是否在settings.py中将应用程序(vacations_app)添加为INSTALLED_APPS?我对你的urlpatterns = []也有点怀疑,因为我在我的一些项目上有urlpatterns = patterns()

如果可能,你可以分享你的settings.py(有可识别的信息省略)吗?

+2

这应该是一个评论。无论如何,这些都不是语法错误的原因。 –

+2

使用列表而不是模式'function'是声明url模式的新的首选方法(cf [doc](https://docs.djangoproject.com/en/1.8/topics/http/urls/#syntax-of -the-urlpatterns-variable)) – aumo

+0

@DanielRoseman理想情况下,我会评论,但我不能,因为我早些时候发布时我的声望是46。 我认为,乔伊威廉已经击中了它的头。 –