μλ νμΈμ. Wagtail CMSμμ μ 곡νλ κ²½λ‘μμ DJDT 1.8μ μ¬μ©νλ €κ³ νλ©΄ μ€ν μ€λ²νλ‘ μ€λ₯κ° λ°μν©λλ€. λμΌν κ²½λ‘/νμ΄μ§κ° 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μ μ€ννλ λ° λ¬Έμ κ° μμ§λ§ μ΄ λ¬Έμ λ₯Ό μ΄λμλΆν° νν€μ³μΌ ν μ§ λ§λ§ν©λλ€. μ΄λ€ μμ΄λμ΄, μ‘°μΈ λλ ν¬λ§μ μΈ μ루μ μ΄ μμ΅λκΉ? 미리 κ°μ¬λ립λλ€.
Django 1.8μμ DDT 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λ‘ μ¬ννμ΅λλ€.
λͺ κ°μ§ μ‘°μ¬λ₯Ό ν ν, panel.py:128 μ 무ν 루νκ° μμ±λμμ΅λλ€. Wagtailμ κ²½μ° μ¬κΈ° value
λ StructValue κ° λ μ μμ΅λλ€. μ¬κΈ°μ λ¬Έμμ΄ ννμ μ€μ λ‘ template_rendered
μ νΈλ₯Ό νΈλ¦¬κ±°νλ ν
νλ¦Ώ λ λλ§μ
λλ€. .
Wagtailμ μ¬μ©νλ μ¬λλ€μ μν΄ μμμ΄ ν¨μΉλ₯Ό νμ΅λλ€. ν¨μΉλ λ€μκ³Ό κ°μ΅λλ€.
https://github.com/FlipperPA/django-debug-toolbar/commit/e68cfa509566bf5332c37f03c0fd9753a873d491
Wagtail μ μ©μ΄κΈ° λλ¬Έμ μ΄κ²μ΄ PRμ΄ λμ΄μΌ νλ€κ³ μκ°νμ§ μμ΅λλ€.
μ΄μ λν λ λ€λ₯Έ ν«ν½μ€λ λλ²κ·Έ λꡬ λͺ¨μμμ 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'),
}
SKIP_TEMPLATE_PREFIXES
λν DDT λ¬Έμμμ:
μ΄λ¬ν λ¬Έμμ΄λ‘ μμνλ ν νλ¦Ώμ λ λλ§λ ν νλ¦Ώ λ° μ»¨ν μ€νΈλ₯Ό μμ§ν λ 건λλλλ€. ν¨λ 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μ λΉν΄ 3λ°° λλ Έμ΅λλ€.
https://github.com/wagtail/wagtail/pull/3738 μμ μμ λ¨ - Wagtail λ¬Έμ μ΄λ―λ‘ λ«μ μ μλ€κ³ μκ°ν©λλ€.
@gasmanλ κ°μ¬ν©λλ€!
django-el-pagination==3.1.0
μλ μν₯μ λ―ΈμΉλ©° 'el_pagination/',
λ₯Ό SKIP_TEMPLATE_PREFIXES
νλ©΄ λμμ΄ λ©λλ€.
κ°μ₯ μ μ©ν λκΈ
https://github.com/wagtail/wagtail/issues/2874... μ κ΄λ ¨μ΄ μμ μ