Синтаксическая ошибка в django

#python #django #django-models #django-templates #django-urls

#python #django #django-модели #django-шаблоны #django-urls

Вопрос:

Что вызывает синтаксическую ошибку в этом urls.py ?

В нем говорится

 syntax error at Line 27[(r'^xd_receiver.html$',.....] in ursl.py.
  

Я не могу понять, в чем проблема.

   urlpatterns = patterns('',
        # Example:
        # (r'^universityDB/', include('universityDB.foo.urls')),

        # Uncomment the admin/doc line below to enable admin documentation:
        # (r'^admin/doc/', include('django.contrib.admindocs.urls')),
        # Uncomment the next line to enable the admin:
        (r'^admin/', include(admin.site.urls)),
        (r'^registrationForm/$','universityDB.universityDetails.views.registrationForm'),
        (r'^userDetails/$','universityDB.universityDetails.views.userDetails'),
        (r'^login/$','universityDB.universityDetails.views.login'),
        (r'^userCreated/$','universityDB.universityDetails.views.userCreated'),
        (r'^forgotPassword/$','universityDB.universityDetails.views.forgotPassword'),
        (r'^passwordRecovery/$','universityDB.universityDetails.views.passwordRecovery'),     
        (r'^accounts/profile', 'universityDB.universityDetails.views.profile'),   
        (r'^xd_receiver.html$', direct_to_template, {'template': 'xd_receiver.html'}, name='xd_receiver'),   
        (r'^login_facebook_connect/$', 'login_facebook_connect', name='facebook_connect_ajax'),

    )
  

Ответ №1:

Если вы хотите присвоить имена своим URL-адресам, вы должны использовать url(...) функцию, т.е.

 url(r'^xd_receiver.html$', direct_to_template, {'template': 'xd_receiver.html'}, name='xd_receiver')
  

… вместо:

 (r'^xd_receiver.html$', direct_to_template, {'template': 'xd_receiver.html'}, name='xd_receiver')
  

Комментарии:

1. одно уточнение: нет никакой силы или необходимости использовать url() . вы можете просто написать (r'^xd_receiver.html$', direct_to_template, {'template': 'xd_receiver.html'}, 'xd_receiver') , который будет работать нормально (используя кортежи)