не вдається імпортувати шаблони імен


77

До того, як я писав у urls.py , мій код ... все працювало чудово. Зараз у мене проблеми - я не можу зайти на свій сайт. "не вдається імпортувати шаблони імен"

Моє urls.py:

from django.conf.urls import patterns, include, url

Вони сказали, яка тут помилка.


Чи можете ви, будь ласка, показати нам повну помилку та трасування?
Тім Пост

3
У мене була та сама проблема, дотримуючись керівництва "напишіть свій перший додаток django". Коли я перемістив скоромовки url з основного urls.py на polls.urls.py. Проблема вирішена після того, як я змінив "із шаблонів імпорту django.conf.urls, включити, url" на "з django.conf.urls.defaults import *"
qliq

2
У мене була та ж проблема під час розгортання на моєму проміжному сервері. Проблема пішла, я перейшов з django 1.3.1 на 1.4, запустивши sudo pip install --upgrade django
Mike Grace

Відповіді:


29

Вам не потрібен цей імпорт. Єдине, що вам потрібно у вашому urls.py (для початку), це:

from django.conf.urls.defaults import *

# This two if you want to enable the Django Admin: (recommended)
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    # ... your url patterns
)

ПРИМІТКА. Це рішення було призначене для Django <1.6. Це насправді був код, генерований самим Django. Для нової версії див. Відповідь Джейкоба Юма.


39
імпорт * вважається поганою практикою
llazzaro

3
з django.conf.urls.defaults import * видалено з djnago1.6
neelima

49
Кожного разу, коли ти import *кошеня вмираєш
cs01

1
Якщо він не міг явно імпортувати шаблони, використання *також не буде працювати ...
Черін,

1
Більше не просувається правильна відповідь та антивірний шаблон (імпорту *). Будь ласка, оновіть відповідь відповідно
Васиф

161

Починаючи з Django 1.10, patternsмодуль було видалено (він був застарілий з 1.8).

На щастя, це має бути просте редагування для видалення порушувального коду, оскільки urlpatterns тепер воно повинно зберігатися в простому старому списку :

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    # ... your url patterns
]

1
але як я можу додати MEDIA_ROOTі MEDIA_URLдо url Patterns
Roel

1
Як додати URL-адресу медіа: docs.djangoproject.com/en/1.10/howto/static-files/…
Raptor

3
Для кращої документації та обґрунтування цієї зміни в Django 1.8 див. Docs.djangoproject.com/en/1.10/releases/1.8/…
nealmcb

І ви повинні видалити порожню URL-адресу ''в першій позиції urlpatterns, інакше ви отримаєте Regex AttributeError. Дивіться stackoverflow.com/questions/34853531/…
Mr-IDE

21

Так:

from django.conf.urls.defaults import ... # is for django 1.3
from django.conf.urls  import ...         # is for django 1.4

Я теж зустрів цю проблему.


11

Модуль шаблонів не підтримується .. мій працював із цим.

from django.conf.urls import *
from django.contrib import admin
admin.autodiscover()

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    # ... your url patterns
]

6

Це код, який працював у мене. Моя версія django 1.10.4 остаточна

from django.conf.urls import url, include

from django.contrib import admin
admin.autodiscover()

urlpatterns = [
    # Examples:
    # url(r'^$', 'blog.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),

    url(r'^admin/', include(admin.site.urls)),
]

3

Модуль шаблону недоступний у django 1.8. Тому вам потрібно видалити шаблон із імпорту та зробити щось подібне до наступного:

from django.conf.urls import include, url
from django.contrib import admin

admin.autodiscover()

urlpatterns = [                 
    # here we are not using pattern module like in previous django versions
    url(r'^admin/', include(admin.site.urls)),
]

1

Я вирішив це, клонувавши свій проект безпосередньо в Eclipse з GIT,

Спочатку я клонував його у певному місці файлової системи, а потім імпортував як існуючий проект в Eclipse.


0

Здається, ви використовуєте застарілу версію django .. Просто оновіть django і повторіть спробу .. Наступна команда оновить вашу версію django ..

pip install --upgrade django


0
from django.contrib import admin
from django.urls import path


urlpatterns = [
    path('admin/', admin.site.urls),
]
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.