Ik werk aan een Django-project waar ik een formulier voor invoer moet maken. Ik heb geprobeerd reverse
te importeren van django.core.urlresolvers
. Ik kreeg een foutmelding:
line 2, in from django.core.urlresolvers import reverse ImportError: No module named 'django.core.urlresolvers'
Ik gebruik Python 3.5.2, Django 2.0 en MySQL.
Antwoord 1, autoriteit 100%
Django 2.0 verwijdert de module django.core.urlresolvers
, die in versie 1.10 naar django.urls
is verplaatst. U moet elke import wijzigen om django.urlste gebruiken in plaats daarvan, zoals dit:
from django.urls import reverse
Houd er rekening mee dat Django 2.0 enkele functies verwijdert die voorheen in django.core.urlresolvers
zaten, dus het kan zijn dat je nog wat wijzigingen moet aanbrengen voordat je code werkt. Zie de functies die zijn beëindigd in 1.9voor details over die aanvullende wijzigingen.
Antwoord 2, autoriteit 15%
als je omgekeerd wilt importeren, importeer het dan van django.urls
from django.urls import reverse
Antwoord 3, autoriteit 7%
U moet alle exemplaren van:
. vervangen
from django.core.urlresolvers import reverse
naar:
from django.urls import reverse
Opmerking: hetzelfde is van toepassing op reverse_lazy
In Pycharm CMD kbd>+ SHIFT kbd>+ R kbd>voor het starten van vervanging op pad.
Antwoord 4
Voor degenen die mogelijk proberen een travis-build te maken, is het standaardpad van waaruit Django is geïnstalleerd in de requirements.txt
bestandspunten naar een repo wiens django_extensions
module is niet bijgewerkt. De enige oplossing, voor nu, is het installeren van de Master Branch met PIP. Dat is waar de patch is gemaakt. Maar voor nu moeten we wachten.
U kunt dit ondertussen proberen, het kan
helpen
- pip install git+https://github.com/chibisov/drf-extensions.git@master
- pip install git+https://github.com/django-extensions/django-extensions.git@master
Antwoord 5
Voor Django-versie groter dan 2.0 gebruik:
from django.urls import reverse
in uw modellen.py-bestand.
Antwoord 6
Gebruik deze:
from django.urls import reverse
Antwoord 7
Urlresolver is verwijderd in de hogere versie van Django - upgrade uw Django-installatie. Ik heb het opgelost met behulp van de volgende opdracht.
pip install django==2.0 --upgrade
Antwoord 8
Gebruik van django.urls importeren omgekeerd in plaats van van django.core.urlresolvers importeren omgekeerd
Antwoord 9
Als uw bouw op Travisci op deze specifieke reden falen, kunt u het probleem oplossen door de Django-extensies bij te werken in uw vereisten. TXT
pip install --upgrade django-extensions
Hiermee wordt de extensies bijgewerkt om Django 2+ modules te gebruiken.
Antwoord 10
Om dit op te lossen, is u de Django
naar elke versie in minder dan 2.0.
Installeer
pipDjango==1.11.29
.
Antwoord 11
In mijn geval was het probleem dat ik verouderd had django-stronghold
geïnstalleerd (0.2.9). En hoewel ik in de code had:
from django.urls import reverse
Ik heb nog steeds de fout aangetroffen. Nadat ik de versie heb geüpgraded naar django-stronghold==0.4.0
het probleem verdwijnt.
Antwoord 12
Upgrading Django 1.9 (Python 2.7) naar Django 3.2 (Python 3.9)
Dit kan worden opgelost in een One Line Bash-vervanging:
grep -ril "from django.core.urlresolvers" your_source_code_folder | xargs sed -i 's@from django.core.urlresolvers@from django.urls@g'