Совместим ли Django-InPlaceEdit с Django после v1.8 - PullRequest
0 голосов
/ 20 мая 2019

В документации InPlaceEdit говорится, что она совместима с Django> = v1.2 (https://django -inplaceedit.readthedocs.io / en / latest / install.html ), однако, похоже, что она несовместимапосле v1.8.

Файл InPlaceEdit urls.py использует старую функцию Patterns (), которая больше не поддерживается, начиная с v1.8 (https://docs.djangoproject.com/en/1.9/ref/urls/).

Является ли проблема I 'Вы определили проблему или я допустил ошибку где-то еще?

Если это является причиной проблемы - есть ли обходной путь для этого?

Я использую следующие версии:(Python 3.7.0, Django 2.1.7, JQuery 3.3.1)

Я попытался реализовать InPlaceEdit со следующими добавлениями кода (согласно инструкциям InPlaceEdit):

В базе.html -> добавлено:

{% load inplace_edit %}

Куда загружаются статические файлы -> добавлено:

{% inplace_static %}

В settings.py INSTALLED_APPS -> добавить запись:

INSTALLED_APPS = (
    #.....................#
    'inplaceeditform',
)

В settings.py -> добавлено:

TEMPLATE_CONTEXT_PROCESSORS = (
    #...#
    'django.core.context_processors.request',
    #...#
)

В urls.py -> добавлена ​​запись в urlpatterns:

urlpatterns = [
    #
    path(r'^inplaceeditform/', include('inplaceeditform.urls')),
    #
]

Примечание: это немного отличается от инструкций, так как синтаксис для этой версии изменился

Инструкции и приложение InPlaceEdit используют старый синтаксис, в котором используется функция Pattern ().В файле InPlaceEdit url.py используется следующий код.

try:
    from django.conf.urls import patterns, url
except ImportError:  # Django < 1.4
    from django.conf.urls.defaults import patterns, url

urlpatterns = patterns('inplaceeditform.views',
    url(r'^save/$', 'save_ajax', name='inplace_save'),
    url(r'^get_field/$', 'get_field', name='inplace_get_field')
)

Функция шаблонов больше не поддерживается, и я ожидал, что новый синтаксис требует что-то вроде следующего:

urlpatterns = [
    url(r'^save/$', views.save_ajax, name='inplace_save'),
    url(r'^get_field/$', views.get_field, name='inplace_get_field')

Внесение описанных модификаций приводит к следующей ошибке (на ранее работающей установке).

InvalidTemplateLibrary at /home/
Invalid template library specified. ImportError raised when trying to load 'inplaceeditform.templatetags.inplace_edit': No module named 'django.core.urlresolvers'
Request Method: GET
Request URL:    http://localhost:8000/home/
Django Version: 2.1.7
Exception Type: InvalidTemplateLibrary
Exception Value:    
Invalid template library specified. ImportError raised when trying to load 'inplaceeditform.templatetags.inplace_edit': No module named 'django.core.urlresolvers'
Exception Location: C:\ProgramData\Anaconda3\lib\site-packages\django\template\backends\django.py in get_package_libraries, line 125
Python Executable:  C:\ProgramData\Anaconda3\python.exe
Python Version: 3.7.0
Python Path:    
['C:\\DjangoServer\\TestServer',
 'C:\\ProgramData\\Anaconda3\\python37.zip',
 'C:\\ProgramData\\Anaconda3\\DLLs',
 'C:\\ProgramData\\Anaconda3\\lib',
 'C:\\ProgramData\\Anaconda3',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32\\lib',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\Pythonwin']
Server time:    Mon, 20 May 2019 10:19:03 +0000
Traceback Switch to copy-and-paste view
C:\ProgramData\Anaconda3\lib\site-packages\django\template\utils.py in __getitem__
            return self._engines[alias] ...
▶ Local vars
During handling of the above exception ('django'), another exception occurred:
C:\ProgramData\Anaconda3\lib\site-packages\django\template\backends\django.py in get_package_libraries
            module = import_module(entry[1]) ...
▶ Local vars
C:\ProgramData\Anaconda3\lib\importlib\__init__.py in import_module
    return _bootstrap._gcd_import(name[level:], package, level) ...
▶ Local vars
<frozen importlib._bootstrap> in _gcd_import
<source code not available> ...
▶ Local vars
<frozen importlib._bootstrap> in _find_and_load
<source code not available> ...
▶ Local vars
<frozen importlib._bootstrap> in _find_and_load_unlocked
<source code not available> ...
▶ Local vars
<frozen importlib._bootstrap> in _load_unlocked
<source code not available> ...
▶ Local vars
<frozen importlib._bootstrap_external> in exec_module
<source code not available> ...
▶ Local vars
<frozen importlib._bootstrap> in _call_with_frames_removed
<source code not available> ...
▶ Local vars
C:\ProgramData\Anaconda3\lib\site-packages\inplaceeditform\templatetags\inplace_edit.py in <module>
from django.core.urlresolvers import reverse ...
▶ Local vars
During handling of the above exception (No module named 'django.core.urlresolvers'), another exception occurred:
C:\ProgramData\Anaconda3\lib\site-packages\django\core\handlers\exception.py in inner
            response = get_response(request) ...
▶ Local vars
C:\ProgramData\Anaconda3\lib\site-packages\django\core\handlers\base.py in _get_response
                response = self.process_exception_by_middleware(e, request) ...
▶ Local vars
C:\ProgramData\Anaconda3\lib\site-packages\django\core\handlers\base.py in _get_response
                response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
▶ Local vars
C:\DjangoServer\TestServer\tables\views.py in user_login
        return render(request, 'tables/login.html', {}) ...
▶ Local vars
C:\ProgramData\Anaconda3\lib\site-packages\django\shortcuts.py in render
    content = loader.render_to_string(template_name, context, request, using=using) ...
▶ Local vars
C:\ProgramData\Anaconda3\lib\site-packages\django\template\loader.py in render_to_string
        template = get_template(template_name, using=using) ...
▶ Local vars
C:\ProgramData\Anaconda3\lib\site-packages\django\template\loader.py in get_template
    engines = _engine_list(using) ...
▶ Local vars
C:\ProgramData\Anaconda3\lib\site-packages\django\template\loader.py in _engine_list
    return engines.all() if using is None else [engines[using]] ...
▶ Local vars
C:\ProgramData\Anaconda3\lib\site-packages\django\template\utils.py in all
        return [self[alias] for alias in self] ...
▶ Local vars
C:\ProgramData\Anaconda3\lib\site-packages\django\template\utils.py in <listcomp>
        return [self[alias] for alias in self] ...
▶ Local vars
C:\ProgramData\Anaconda3\lib\site-packages\django\template\utils.py in __getitem__
            engine = engine_cls(params) ...
▶ Local vars
C:\ProgramData\Anaconda3\lib\site-packages\django\template\backends\django.py in __init__
        options['libraries'] = self.get_templatetag_libraries(libraries) ...
▶ Local vars
C:\ProgramData\Anaconda3\lib\site-packages\django\template\backends\django.py in get_templatetag_libraries
        libraries = get_installed_libraries() ...
▶ Local vars
C:\ProgramData\Anaconda3\lib\site-packages\django\template\backends\django.py in get_installed_libraries
            for name in get_package_libraries(pkg): ...
▶ Local vars
C:\ProgramData\Anaconda3\lib\site-packages\django\template\backends\django.py in get_package_libraries
                "trying to load '%s': %s" % (entry[1], e) ...
▶ Local vars
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...