Pracuję nad projektem Django, w którym muszę utworzyć formularz do wprowadzania danych. Próbowałem importować reverse
z django.core.urlresolvers
. Wystąpił błąd:
line 2, in from django.core.urlresolvers import reverse ImportError: No module named 'django.core.urlresolvers'
Używam Pythona 3.5.2, Django 2.0 i MySQL.
django
python-3.x
python-3.5
django-2.0
viratayya salimath
źródło
źródło
Odpowiedzi:
Django 2.0 usuwa
django.core.urlresolvers
moduł, do którego został przeniesionydjango.urls
w wersji 1.10. Powinieneś zmienić dowolny import, aby zamiast tego używał django.urls , na przykład:Zwróć uwagę, że Django 2.0 usuwa niektóre funkcje, które wcześniej były obecne
django.core.urlresolvers
, więc być może będziesz musiał wprowadzić więcej zmian, zanim kod zacznie działać. Zobacz funkcje wycofane w wersji 1.9, aby uzyskać szczegółowe informacje na temat tych dodatkowych zmian.źródło
jeśli chcesz zaimportować wstecz, zaimportuj go z
django.urls
źródło
Musisz zastąpić wszystkie wystąpienia:
from django.core.urlresolvers import reverse
do:
from django.urls import reverse
UWAGA: To samo dotyczy reverse_lazy
w Pycharm Cmd+ Shift+ R za rozpoczęcie wymiany w Path.
źródło
Dla tych, którzy mogą próbować stworzyć Travis Build, domyślna ścieżka, z której Django jest instalowane z
requirements.txt
pliku, wskazuje na repozytorium, któregodjango_extensions
moduł nie został zaktualizowany. Na razie jedynym obejściem jest instalacja z gałęzi głównej za pomocą pip. Tam właśnie powstaje łatka. Ale na razie będziemy musieli poczekać.W międzyczasie możesz spróbować, to może pomóc
- pip install git+https://github.com/chibisov/drf-extensions.git@master
- pip install git+https://github.com/django-extensions/django-extensions.git@master
źródło
użyj tego:
źródło
Dla wersji django większej niż 2.0 użyj:
w pliku models.py.
źródło
Jeśli twoje kompilacje w TravisCI zawodzą z tego konkretnego powodu, możesz rozwiązać problem, aktualizując rozszerzenia Django w swoim Requirements.txt
Spowoduje to zaktualizowanie rozszerzeń, aby korzystały z modułów Django 2+.
źródło
urlresolver został usunięty w wyższej wersji Django - Proszę zaktualizować swoją instalację django. Naprawiłem to za pomocą następującego polecenia.
źródło
Aby rozwiązać ten problem, możesz obniżyć poziom
Django
do dowolnej wersji mniejszej niż2.0. pip
instalacjaDjango==1.11.29
.źródło