2012-02-16 25 views
3

私は非常にPythonに新しく、私のシステムでDjangoコードを実行しようとしていますが、この問題が発生しています。ImportError:名前をインポートできませんreverse_lazy

$ python manage.py runserver 
Running in development mode. 
Traceback (most recent call last): 
    File "manage.py", line 11, in <module> 
    import settings 
    File "/Users/Kinnovate/Desktop/fsdjango/platformsite/settings.py", line 321, in <module> 
    from django.core.urlresolvers import reverse_lazy 
ImportError: cannot import name reverse_lazy 

私はpython 2.7を使用しています。これをどうやって解決するのですか?

答えて

9

reverse_lazyは、リリースされたDjangoのバージョンより新しいです。 Djangoのトランク版をお持ちですか?

+0

を扱う私はジャンゴの別のバージョンを取得する必要がありますか? – henghonglee

+0

私は分かりません。どんなバージョンがありますか?あなたは、あなたが持っているバージョンで利用可能なメソッドに固執することもできます。 –

+0

im使用 (1,3,1、 'final'、0) – henghonglee

6

あなたはこれらの線に沿って何かを使用することができますが、あなたが1.3で立ち往生している場合:

try: 
    from django.core.urlresolvers import reverse_lazy 
except ImportError: 
    from django.core.urlresolvers import reverse 
    from django.utils.functional import lazy 
    reverse_lazy = lambda *args, **kwargs: lazy(reverse, str)(*args, **kwargs) 

更新: reverse_lazyは、可変引数

+1

これは、1.3の大きなポリフィル/フォールバックです。私はクラスベースのビューからsuccess_urlを定義するためにこれを必要としました –

+0

これはカスタムtemplatetagで使用できますか?私はDjango 1.3アプリで同じ問題が発生しています。私はlogin_requiredデコレータを持つURLを逆にする必要があります。 – acrespo

関連する問題