自分の開発環境のubuntuを13.04にアップデートしたら、
pythonのvirtualenv環境が変になった。
virtualenv環境を新しくして、pipでdjangoをインストールしたところ
1.4から1.5に上がってしまい若干の修正が必要だった。
1 'url' requires a non-empty first argument. The syntax changed in Django 1.5, see the docs.
こんなエラーが表示される。
調べたところ、template内の、{% url foo.bar %}が問題らしい。
ここを
1 |
{% url "foo.bar" %} |
とクオートで囲んであげれば、現象回避できる。
自分の場合は、さほど数が多く無いので手動で行ったが、
多い場合は、スクリプトで対処が必要かと。
http://stackoverflow.com/questions/13590699/migrate-url-tags-to-django-1-5
テンプレートの、拡張子がhtmlならこんな感じでしょうか。(未検証)
(一応sed時に*.BKでバックアップも残して)
1 |
$ find . -type f -a -name "*.html" -print0 | xargs -0 sed -i.BK -r -e "s#\{% url ([a-zA-Z0-9_.-]+)#\{% url '\1'#g" |