مساء الخير ، أتلقى خطأ تجاوز سعة مكدس عندما أحاول استخدام DJDT 1.8 على المسارات التي يخدمها Wagtail CMS. تعمل نفس المسارات / الصفحات مع DJDT 1.7. أنا أدير Django 1.11.2 و Wagtail 1.10.1. هذا هو الأثر:
Fatal Python error: Cannot recover from stack overflow.
Current thread 0x00007f5d3f7f8700 (most recent call first):
File "/venv-path/django/utils/functional.py", line 215 in wrapper
File "/venv-path/django/template/base.py", line 835 in __init__
File "/venv-path/django/template/base.py", line 685 in __init__
File "/venv-path/django/template/base.py", line 600 in compile_filter
File "/venv-path/django/template/defaulttags.py", line 826 in do_for
File "/venv-path/django/template/base.py", line 513 in parse
File "/venv-path/django/template/base.py", line 230 in compile_nodelist
File "/venv-path/django/template/base.py", line 191 in __init__
File "/venv-path/django/template/loaders/base.py", line 44 in get_template
File "/venv-path/django/template/engine.py", line 136 in find_template
File "/venv-path/django/template/engine.py", line 162 in get_template
File "/venv-path/django/template/backends/django.py", line 39 in get_template
File "/venv-path/django/template/loader.py", line 21 in get_template
File "/venv-path/django/template/loader.py", line 67 in render_to_string
File "/venv-path/wagtail/wagtailcore/blocks/base.py", line 259 in render
File "/venv-path/wagtail/wagtailcore/blocks/stream_block.py", line 377 in __html__
File "/venv-path/wagtail/wagtailcore/blocks/stream_block.py", line 380 in __str__
File "/venv-path/django/utils/encoding.py", line 76 in force_text
File "/venv-path/debug_toolbar/panels/templates/panel.py", line 128 in _store_template_info
File "/venv-path/django/dispatch/dispatcher.py", line 193 in <listcomp>
File "/venv-path/django/dispatch/dispatcher.py", line 193 in send
File "/venv-path/django/test/utils.py", line 106 in instrumented_test_render
File "/venv-path/django/template/base.py", line 207 in render
File "/venv-path/django/template/backends/django.py", line 66 in render
File "/venv-path/django/template/loader.py", line 68 in render_to_string
File "/venv-path/wagtail/wagtailcore/blocks/base.py", line 259 in render
File "/venv-path/wagtail/wagtailcore/blocks/stream_block.py", line 377 in __html__
File "/venv-path/wagtail/wagtailcore/blocks/stream_block.py", line 380 in __str__
File "/venv-path/django/utils/encoding.py", line 76 in force_text
File "/venv-path/debug_toolbar/panels/templates/panel.py", line 128 in _store_template_info
File "/venv-path/django/dispatch/dispatcher.py", line 193 in <listcomp>
File "/venv-path/django/dispatch/dispatcher.py", line 193 in send
File "/venv-path/django/test/utils.py", line 106 in instrumented_test_render
File "/venv-path/django/template/base.py", line 207 in render
File "/venv-path/django/template/backends/django.py", line 66 in render
File "/venv-path/django/template/loader.py", line 68 in render_to_string
File "/venv-path/wagtail/wagtailcore/blocks/base.py", line 259 in render
File "/venv-path/wagtail/wagtailcore/blocks/stream_block.py", line 377 in __html__
File "/venv-path/wagtail/wagtailcore/blocks/stream_block.py", line 380 in __str__
File "/venv-path/django/utils/encoding.py", line 76 in force_text
File "/venv-path/debug_toolbar/panels/templates/panel.py", line 128 in _store_template_info
File "/venv-path/django/dispatch/dispatcher.py", line 193 in <listcomp>
File "/venv-path/django/dispatch/dispatcher.py", line 193 in send
File "/venv-path/django/test/utils.py", line 106 in instrumented_test_render
File "/venv-path/django/template/base.py", line 207 in render
File "/venv-path/django/template/backends/django.py", line 66 in render
File "/venv-path/django/template/loader.py", line 68 in render_to_string
File "/venv-path/wagtail/wagtailcore/blocks/base.py", line 259 in render
File "/venv-path/wagtail/wagtailcore/blocks/stream_block.py", line 377 in __html__
File "/venv-path/wagtail/wagtailcore/blocks/stream_block.py", line 380 in __str__
File "/venv-path/django/utils/encoding.py", line 76 in force_text
File "/venv-path/debug_toolbar/panels/templates/panel.py", line 128 in _store_template_info
File "/venv-path/django/dispatch/dispatcher.py", line 193 in <listcomp>
File "/venv-path/django/dispatch/dispatcher.py", line 193 in send
File "/venv-path/django/test/utils.py", line 106 in instrumented_test_render
File "/venv-path/django/template/base.py", line 207 in render
File "/venv-path/django/template/backends/django.py", line 66 in render
File "/venv-path/django/template/loader.py", line 68 in render_to_string
File "/venv-path/wagtail/wagtailcore/blocks/base.py", line 259 in render
File "/venv-path/wagtail/wagtailcore/blocks/stream_block.py", line 377 in __html__
File "/venv-path/wagtail/wagtailcore/blocks/stream_block.py", line 380 in __str__
File "/venv-path/django/utils/encoding.py", line 76 in force_text
File "/venv-path/debug_toolbar/panels/templates/panel.py", line 128 in _store_template_info
File "/venv-path/django/dispatch/dispatcher.py", line 193 in <listcomp>
File "/venv-path/django/dispatch/dispatcher.py", line 193 in send
File "/venv-path/django/test/utils.py", line 106 in instrumented_test_render
File "/venv-path/django/template/base.py", line 207 in render
File "/venv-path/django/template/backends/django.py", line 66 in render
File "/venv-path/django/template/loader.py", line 68 in render_to_string
File "/venv-path/wagtail/wagtailcore/blocks/base.py", line 259 in render
File "/venv-path/wagtail/wagtailcore/blocks/stream_block.py", line 377 in __html__
File "/venv-path/wagtail/wagtailcore/blocks/stream_block.py", line 380 in __str__
File "/venv-path/django/utils/encoding.py", line 76 in force_text
File "/venv-path/debug_toolbar/panels/templates/panel.py", line 128 in _store_template_info
File "/venv-path/django/dispatch/dispatcher.py", line 193 in <listcomp>
File "/venv-path/django/dispatch/dispatcher.py", line 193 in send
File "/venv-path/django/test/utils.py", line 106 in instrumented_test_render
File "/venv-path/django/template/base.py", line 207 in render
File "/venv-path/django/template/backends/django.py", line 66 in render
File "/venv-path/django/template/loader.py", line 68 in render_to_string
File "/venv-path/wagtail/wagtailcore/blocks/base.py", line 259 in render
File "/venv-path/wagtail/wagtailcore/blocks/stream_block.py", line 377 in __html__
File "/venv-path/wagtail/wagtailcore/blocks/stream_block.py", line 380 in __str__
File "/venv-path/django/utils/encoding.py", line 76 in force_text
File "/venv-path/debug_toolbar/panels/templates/panel.py", line 128 in _store_template_info
File "/venv-path/django/dispatch/dispatcher.py", line 193 in <listcomp>
File "/venv-path/django/dispatch/dispatcher.py", line 193 in send
File "/venv-path/django/test/utils.py", line 106 in instrumented_test_render
File "/venv-path/django/template/base.py", line 207 in render
File "/venv-path/django/template/backends/django.py", line 66 in render
File "/venv-path/django/template/loader.py", line 68 in render_to_string
File "/venv-path/wagtail/wagtailcore/blocks/base.py", line 259 in render
File "/venv-path/wagtail/wagtailcore/blocks/stream_block.py", line 377 in __html__
File "/venv-path/wagtail/wagtailcore/blocks/stream_block.py", line 380 in __str__
File "/venv-path/django/utils/encoding.py", line 76 in force_text
File "/venv-path/debug_toolbar/panels/templates/panel.py", line 128 in _store_template_info
File "/venv-path/django/dispatch/dispatcher.py", line 193 in <listcomp>
File "/venv-path/django/dispatch/dispatcher.py", line 193 in send
File "/venv-path/django/test/utils.py", line 106 in instrumented_test_render
File "/venv-path/django/template/base.py", line 207 in render
...
Thread 0x00007f5d4bcb3700 (most recent call first):
File "/usr/lib64/python3.5/selectors.py", line 376 in select
File "/usr/lib64/python3.5/socketserver.py", line 232 in serve_forever
File "/venv-path/django/core/servers/basehttp.py", line 174 in run
File "/venv-path/django/core/management/commands/runserver.py", line 149 in inner_run
File "/venv-path/django/utils/autoreload.py", line 227 in wrapper
Thread 0x00007f5d61887740 (most recent call first):
File "/venv-path/django/utils/autoreload.py", line 281 in reloader_thread
File "/venv-path/django/utils/autoreload.py", line 298 in python_reloader
File "/venv-path/django/utils/autoreload.py", line 332 in main
File "/venv-path/django/core/management/commands/runserver.py", line 110 in run
File "/venv-path/django/core/management/commands/runserver.py", line 101 in handle
File "/venv-path/django/core/management/base.py", line 330 in execute
File "/venv-path/django/core/management/commands/runserver.py", line 62 in execute
File "/venv-path/django/core/management/base.py", line 283 in run_from_argv
File "/venv-path/django/core/management/__init__.py", line 355 in execute
File "/venv-path/django/core/management/__init__.py", line 363 in execute_from_command_line
File "manage.py", line 15 in <module>
Aborted
أنا بخير مع تشغيل 1.7 في الوقت الحالي ، لكنني في حيرة من أين أبدأ البحث في هذه المشكلة. أي أفكار أو نصائح أو حلول نأمل؟ شكرا لك مقدما.
يمكنني تأكيد نفس المشكلة عند استخدام DDT 1.8 مع Django 1.8.
لقد رأيت نفس المشكلة - تم تشغيلها بالنسبة لي عند استخدام كتلة StreamField التي حددت نموذجًا. كانت إضافة هذا النموذج إلى تهيئة شريط أدوات التصحيح SKIP_TEMPLATE_PREFIXES
حلاً بديلاً. على ما أذكر (على الرغم من أنه كان منذ بعض الوقت) ، كانت المشكلة الأساسية هي أن كائن الكتلة يعرض قالبًا بطريقة __str__
، مما أدى إلى تكرار لا نهائي في لوحة TEMPLATES من شريط أدوات التصحيح.
gasman أعتقد أنك قد ترغب في إلقاء نظرة على هذه المسألة.
يحتمل أن تكون مرتبطة بـ https: //github.com/wagtail/wagtail/issues/2874 ...؟
لقد اختبرت نفس الشيء مع DDT 1.8 و Django 1.11.2 و Wagtail 1.10.1.
تم إعادة إنتاجه باستخدام Python 3.6 و 3.6.1 و 3.7a
بعد إجراء بعض التحقيقات ، توجد حلقة لا نهائية تم إنشاؤها في اللوحات . value
هنا عبارة عن StructValue الذي يمثل تمثيل السلسلة في الواقع عرضًا للقالب يؤدي إلى تشغيل إشارة template_rendered
.
لقد قمت بتصحيحه على شكل قرد لجعله يعمل لمن يستخدمون الذعرة. التصحيح هنا:
https://github.com/FlipperPA/django-debug-toolbar/commit/e68cfa509566bf5332c37f03c0fd9753a873d491
لا أتوقع أن تكون هذه علاقة عامة ، لأنها خاصة بالذعرة.
إصلاح عاجل آخر لهذا الأمر هو استبعاد القوالب المستخدمة من قبل StructBlock
من شريط أدوات التصحيح. على سبيل المثال
class MyStructBlock(StructBlock):
...
class Meta:
...
template = 'myblocks/structblock.html'
وأضف إلى ملف settings.py
:
DEBUG_TOOLBAR_CONFIG = {
'SKIP_TEMPLATE_PREFIXES': ('django/forms/widgets/', 'admin/widgets/', 'myblocks/structblock.html'),
}
من مستند DDT مقابل SKIP_TEMPLATE_PREFIXES
:
يتم تخطي القوالب التي تبدأ بهذه السلاسل عند تجميع القوالب والسياقات المعروضة. يتم تخطي أدوات النماذج المستندة إلى القوالب افتراضيًا لأن لوحة HTML يمكن أن تنمو بسهولة لمئات الميجابايت مع العديد من حقول النماذج والعديد من الخيارات.
يعمل لدي.
واجهتنا هذه المشكلة مع Django Debug Toolbar 1.8 و django-floppyforms وقمنا بإصلاح هذه المشكلة بطريقة مماثلة:
DEBUG_TOOLBAR_CONFIG = {
'SKIP_TEMPLATE_PREFIXES': (
'django/forms/widgets/',
'admin/widgets/',
'floppyforms/'
),
'DISABLE_PANELS': {
'debug_toolbar.panels.redirects.RedirectsPanel',
'debug_toolbar.panels.redirects.TemplatesPanel'
},
}
قررنا أيضًا تعطيل TemplatesPanel افتراضيًا لأنه كان يؤدي إلى إبطاء الصفحة بشكل كبير. كان تحميل الصفحة بطيئًا ثلاث مرات مقارنةً بـ Django Debug Toolbar 1.7.
تم الإصلاح في https://github.com/wagtail/wagtail/pull/3738 - أعتقد أنه يمكن إغلاق هذا ، لأنه مشكلة الذعرة.
gasman شكرا!
يؤثر أيضًا على django-el-pagination==3.1.0
، إضافة 'el_pagination/',
إلى SKIP_TEMPLATE_PREFIXES
يساعد.
التعليق الأكثر فائدة
يحتمل أن تكون مرتبطة بـ https: //github.com/wagtail/wagtail/issues/2874 ...؟