Браузер файлов без grapelli: NameError: имя «сайт» не определено

Я следую этому руководству по установке < em>django-tinymce4-lite. В конце руководства есть указания по установке django-filebrowser-no-grappelli.

Я использую Django 2.1.1, но, несмотря на то, что я следовал всем указаниям, после установки файлового браузера было показано это сообщение:

Файл "/var/www/html/dev/miosito/django/beautifulsite_v0.1.1/djangosite/djangosite/urls.py", строка 25, путь ("admin/filebrowser/", include(site.urls)), NameError : имя «сайт» не определено

Вот urls.py:

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from filebrowser.sites import site #sorry I've forgot this

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('testapp.urls')), #app for my tests
    path('tinymce/', include('tinymce.urls')),
    path('admin/filebrowser/', include('site.urls')),
]

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Что я не так?

ИЗМЕНИТЬ после исправления Йео:

Я добавил строку, которую забыл, и исправил

path('admin/filebrowser/', include(site.urls)), 

с

path('admin/filebrowser/', include('site.urls')),

но теперь у меня есть эта новая ошибка:

ModuleNotFoundError: нет модуля с именем «site.urls»; «сайт» не является пакетом


person Massimiliano Moraca    schedule 23.09.2018    source источник
comment
ты забыл from filebrowser.sites import site   -  person Yeo    schedule 23.09.2018
comment
Теперь у меня другая ошибка   -  person Massimiliano Moraca    schedule 23.09.2018
comment
Почему вы не следуете учебнику? используйте это вместо path('admin/filebrowser/', include(site.urls)),   -  person Yeo    schedule 23.09.2018
comment
если вы цитируете site.urls, то это означает разные вещи...   -  person Yeo    schedule 23.09.2018
comment
Йео, я уже использовал цитату на site.urls, и у меня есть эта ошибка:   -  person Massimiliano Moraca    schedule 23.09.2018
comment
Файл /var/www/html/dev/miosito/django/beautifulsite_v0.1.1/venv/lib/python3.6/site-packages/django/urls/conf.py, строка 27, в include 'предоставьте аргумент пространства имен для включения () вместо.' % len(arg) django.core.exceptions.ImproperlyConfigured: передача 3-х кортежей в include() не поддерживается. Передайте 2-кортеж, содержащий список шаблонов и app_name, и вместо этого укажите аргумент пространства имен для включения().   -  person Massimiliano Moraca    schedule 23.09.2018
comment
Тогда я попробовал по-другому, как видите...   -  person Massimiliano Moraca    schedule 23.09.2018
comment
Давайте продолжим обсуждение в чате.   -  person Yeo    schedule 23.09.2018


Ответы (1)


Попробуйте следующее: (удалите include)

# ...
from filebrowser.sites import site
# ...

urlpatterns = [
    # ...
    path('admin/filebrowser/', site.urls),
    # ...
]

Всегда обращайтесь к официальной документации пакета, когда сталкиваетесь с ошибками, характерными для самого пакета. (В данном случае это django-filebrowser, хотя основной репозиторий находится по адресу django-filebrowser-no-grappelli). Блог иногда легко устаревает. Например, в руководстве по вашей ссылке не указано, какую версию Django они используют. (Судя по тому, как было написано руководство include, похоже, что это Django‹1.9 (ссылка)).

Если вы используете Django>=2, то в официальном документе должен быть объяснен правильный способ установки этого пакета.

person Yeo    schedule 23.09.2018