2013-07-04 3 views
0

Я переношу с python2.5 на python 2.7 и у меня проблемы с индексами базы данных. Главная страница правильно генерируется, но я не могу делать какие-либо операции с базой данных (добавить запись), не получаю эту ошибку:TemplateSyntaxError после миграции на python 2.7

TemplateSyntaxError at /new 

Caught NoReverseMatch while rendering: Reverse for 'views.edit' with 
arguments '('',)' and keyword arguments '{}' not found. 

Request Method: GET 

Exception Type: TemplateSyntaxError 

Exception Value:  
Caught NoReverseMatch while rendering: Reverse for 'views.edit' with 
arguments '('',)' and keyword arguments '{}' not found. 

Exception Location: /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ 
GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django- 
1.2/django/template/defaulttags.py in render, line 385 


Template error 

In template /.../templates/item.html, error at line 5 
Caught NoReverseMatch while rendering: Reverse for 'views.edit' with 
arguments '('',)' and keyword arguments '{}' not found. 

Вот что я имею в строке 5:

<form action="{%url views.edit item.key.id%}" method="post"> 

Мой urls.py содержит:

urlpatterns = patterns('', 
    (r'^$', 'views.index'), 
    (r'^new$', 'views.new'), 
    (r'^edit/(\d+)$', 'views.edit'), 
) 

Он работал отлично с питона 2,5

ответ

1

В этом случае ошибка б ecause item.key.id в настоящее время равно пустой строке, которая не соответствует вашему шаблону url.

Вместо:

(r'^edit/(\d+)$', 'views.edit'), 

попробовать:

(r'^edit/(\d*)$', 'views.edit'), 
+0

Если это изменить? urlpatterns = patterns ( '', (r '^ $', 'views.index'), (r '^ new $', 'views.new'), (r '^ edit/(\ d +) $ ',' views.edit '), ) – Tyra

+0

Это действительно будет зависеть, но если вы измените' + 'в своем шаблоне редактирования на' * ', то он будет соответствовать. Что касается, если это решит вашу проблему полностью, я не уверен. –

+0

Спасибо! Отлично работает! – Tyra

Смежные вопросы