2012-02-16 4 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

с использованием (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

, может ли это использоваться в пользовательском шаблоне шаблонов? У меня такая же проблема с приложением Django 1.3, и мне нужно отменить URL-адреса, у которых есть декодер login_required. – acrespo

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