В документации 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