Django-debug-toolbar: 'djdt'λŠ” λ“±λ‘λœ λ„€μž„μŠ€νŽ˜μ΄μŠ€κ°€ μ•„λ‹™λ‹ˆλ‹€.

에 λ§Œλ“  2017λ…„ 01μ›” 28일  Β·  9μ½”λ©˜νŠΈ  Β·  좜처: jazzband/django-debug-toolbar

μ•ˆλ…•ν•˜μ„Έμš”, debugtoolbar의 3번의 μ‹œλ„μ™€ .. 3번의 μ‹€νŒ¨

λ¨Όμ € 보여쀄 수 μ—†λ‹€λ©΄.
2λ…„ 후에도 λ§ˆμ°¬κ°€μ§€,
μ΄λ²ˆμ—λŠ” 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

/μ—μ„œ NoReverseMatch
'djdt'λŠ” λ“±λ‘λœ λ„€μž„μŠ€νŽ˜μ΄μŠ€κ°€ μ•„λ‹™λ‹ˆλ‹€.

λ‚΄κ°€ ν•΄μ•Ό ν•˜λŠ” λŒ€λ‘œ μ„€μ • 및 URLμ—μ„œ λͺ¨λ“  μž‘μ—…μ„ μˆ˜ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.

λ¬Έμ œλŠ” 14행에 μžˆμŠ΅λ‹ˆλ‹€.

13 <div id="djDebug" class="djdt-hidden" dir="ltr"
14       data-store-id="{{ toolbar.store_id }}" data-render-panel-url="{% url 'djdt:render_panel' %}"
15       {{ toolbar.config.ROOT_TAG_EXTRA_ATTRS|safe }}>

μž₯κ³  버전 1.9 1.10, 1.10.04
PIP3의 디버그 νŒ¨λ„ 1.6

μ„€μ •:

INSTALLED_APPS개
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sites',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_hosts',
'ckeditor',
'django_user_agents',
'디버그_도ꡬ λͺ¨μŒ',
'μ•±μŠ€.μ½”μ–΄',
'μ•±μŠ€.λΈ”λ‘œκ·Έ']

λ‚΄λΆ€_IPS
('127.0.0.1', '192.168.1.41')

MIDDLEWARE_CLASSES
('django_hosts.middleware.HostsRequestMiddleware',
'debug_toolbar.middleware.DebugToolbar미듀웨어',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django_hosts.middleware.HostsResponseMiddleware',
'django_user_agents.middleware.UserAgentMiddleware')

디버그가 TRUE둜 μ„€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

제발.. λ„μ™€μ£Όμ„Έμš”. 3λ…„ λ™μ•ˆ 디버깅을 μœ„ν•œ 졜고의 도ꡬ 쀑 ν•˜λ‚˜λ₯Ό μ‚¬μš©ν•  수 μ—†λ‹€λŠ” 것이 μ‹€λ§μŠ€λŸ½μŠ΅λ‹ˆλ‹€...

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λΉ λ₯Έ 응닡에 κ°μ‚¬ν•©λ‹ˆλ‹€.

사싀, λ‚˜λŠ” 같은 였λ₯˜λ₯Ό μ–»μ—ˆμ§€λ§Œ λ‹€λ₯Έ 이유둜. 둜 인해 λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.
λ‚΄ μ•±μ˜ url.py μ•ˆμ— 뢙여넣은 debug-toolbar url 경둜,
ν”„λ‘œμ νŠΈμ˜ url.py μ•ˆμ— λ„£λŠ” λŒ€μ‹ 

2017λ…„ 3μ›” 25일 μ˜€ν›„ 12μ‹œ 3뢄에 "NomadDemon" [email protected] 이 μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€.

λ„€, μ•Œμ•„λƒˆμŠ΅λ‹ˆλ‹€.
λ¨Όμ € ꡬ성에 λͺ‡ 가지 λ¬Έμ œκ°€ μžˆμ—ˆκ³  항상 prod ꡬ성이 λ‹€μŒκ³Ό ν•¨κ»˜ μ‚¬μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
디버그 = 거짓. - κ³ μ •

그런 λ‹€μŒ 도ꡬ λͺ¨μŒμ΄ ν‘œμ‹œλ˜μ§€ μ•ŠλŠ” λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.
HTTP λŒ€μ‹  SOCK μ˜΅μ…˜κ³Ό ν•¨κ»˜ gunicorn을 μ‚¬μš©ν•  λ•Œ remote_addr은
톡과. λ‚΄ μžμ‹ μ˜ "디버깅 μ‚¬μš©μžλ₯Ό μœ„ν•œ μœ νš¨μ„± 검사기"λ₯Ό μˆ˜λ™μœΌλ‘œ μ‚¬μš©ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.

두 번째 뢀뢄은 λ‹€λ₯Έ μ‚¬μš©μžμ—κ²Œ μœ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

β€”
당신이 λŒ“κΈ€μ„ λ‹¬μ•˜κΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/jazzband/django-debug-toolbar/issues/911#issuecomment-289207638 ,
λ˜λŠ” μŠ€λ ˆλ“œ μŒμ†Œκ±°
https://github.com/notifications/unsubscribe-auth/AECBuNt3Zeul4JCyIhkb74hoRCbnCs80ks5rpQKggaJpZM4Lwdtd
.

λͺ¨λ“  9 λŒ“κΈ€

이 였λ₯˜λŠ” URL을 μ˜¬λ°”λ₯΄κ²Œ κ΅¬μ„±ν•˜μ§€ μ•Šμ•˜μŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€.

_CFG.DEBUG = μ°Έ

if _CFG.DEBUG:
    import debug_toolbar
    urlpatterns += [
        url(r'^__debug__/', include(debug_toolbar.urls)),
        url(r'^site_media/(?P<path>.*)$',   serve, {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
        url(r'^static/(?P<path>.*)$',       serve, {'document_root': settings.STATIC_ROOT, 'show_indexes': True}),
    ]

λ„μ™€μ£Όμ„Έμš”? :(

μ’‹μ•„ 보인닀(λ‚΄ 생각에). 전체 URLconf νŒŒμΌμ„ λ³΄μ—¬μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ? /site_media/ λŠ” λ‘œμ»¬μ—μ„œ μž‘λ™ν•©λ‹ˆκΉŒ? _CFG 은(λŠ”) λ¬΄μ—‡μž…λ‹ˆκΉŒ? κ²Œμ‹œν•œ μ½”λ“œκ°€ ROOT_URLCONF 의 μΌλΆ€μž…λ‹ˆκΉŒ, μ•„λ‹ˆλ©΄ 이미 λ‹€λ₯Έ λ„€μž„μŠ€νŽ˜μ΄μŠ€ μ•ˆμ— μžˆμŠ΅λ‹ˆκΉŒ?

예, 루트 URL의 μΌλΆ€μ˜€μŠ΅λ‹ˆλ‹€.

from django.conf.urls.i18n import i18n_patterns
from django.conf.urls import url, include
from django.conf import settings
from django.contrib import admin
from django.views.decorators.cache import cache_page
from django.views.generic.base import RedirectView
from django.views.generic import *
from django.views.static import serve
from django.views.i18n import javascript_catalog
from django.utils.translation import ugettext_lazy as _

from ..core.views import *

import config as _CFG

admin.autodiscover()

urlpatterns = [
    url(r'^jsi18n/$', javascript_catalog),
    url(r'^jsi18n/(?P<packages>\S+?)/$', javascript_catalog),
    url(r'^i18n/', include('django.conf.urls.i18n')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^ckeditor/', include('ckeditor_uploader.urls')),
]

urlpatterns += [
    url(r'^lang/(?P<lang>[\w\-]+)$',    set_lang),
    url(r'^error-(?P<ID>\d+)$',  errors),

    url(r'^login/$',    login),
    url(r'^logout/$',   logout),

    url(r'^favicon\.ico$',  RedirectView.as_view(permanent=True, url='static/favicon.ico')),
    url(r'^favicon\.png$',  RedirectView.as_view(permanent=True, url='static/favicon.png')),
    url(r'^prev\.png$',     RedirectView.as_view(permanent=True, url='static/icons/prev.png')),
    url(r'^robots\.txt$',   RedirectView.as_view(permanent=True, url='static/robots.txt')),
    url(r'^sitemap\.xml$',  RedirectView.as_view(permanent=True, url='static/sitemap.xml')),
]

if _CFG.REGISTRABLE:
    urlpatterns += [
        url(r'^register/$', views.register),
        url(r'^activate', views.activate),
    ]

if _CFG.RESETABLE:
    urlpatterns += [
        url(r'^resetpass/$',    views.reset_password, {'typ' : 'resetpass'}),
        url(r'^resetpass2/$',   views.reset_password, {'typ' : 'resetpass2'}),
    ]

if _CFG.DEBUG:
    import debug_toolbar
    urlpatterns += [
        url(r'^__debug__/', include(debug_toolbar.urls)),
        url(r'^site_media/(?P<path>.*)$',   serve, {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
        url(r'^static/(?P<path>.*)$',       serve, {'document_root': settings.STATIC_ROOT, 'show_indexes': True}),
    ]

handler404 = my404
handler500 = my404

if len(_CFG.APP_LIST) == 0:
    exec(open('./apps/www/urls.py').read())

cfgλŠ” ν”„λ‘œμ νŠΈμ—μ„œ μ‚¬μš©ν•˜λŠ” μΆ”κ°€ ꡬ성 νŒŒμΌμž…λ‹ˆλ‹€. μƒμˆ˜ κ°’λ§Œ ν¬ν•¨ν•©λ‹ˆλ‹€.

@NomadDemon 이 λ¬Έμ œμ— 진전이 μžˆμŠ΅λ‹ˆκΉŒ?

λ„€, μ•Œμ•„λƒˆμŠ΅λ‹ˆλ‹€.
λ¨Όμ € ꡬ성에 λͺ‡ 가지 λ¬Έμ œκ°€ μžˆμ—ˆκ³  항상 prod ꡬ성이 DEBUG = False와 ν•¨κ»˜ μ‚¬μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€. - κ³ μ •

그런 λ‹€μŒ 도ꡬ λͺ¨μŒμ΄ ν‘œμ‹œλ˜μ§€ μ•ŠλŠ” λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.
HTTP λŒ€μ‹  SOCK μ˜΅μ…˜κ³Ό ν•¨κ»˜ gunicorn을 μ‚¬μš©ν•  λ•Œ remote_addr이 μ „λ‹¬λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‚΄ μžμ‹ μ˜ "디버깅 μ‚¬μš©μžλ₯Ό μœ„ν•œ μœ νš¨μ„± 검사기"λ₯Ό μˆ˜λ™μœΌλ‘œ μ‚¬μš©ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.

두 번째 뢀뢄은 λ‹€λ₯Έ μ‚¬μš©μžμ—κ²Œ μœ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λΉ λ₯Έ 응닡에 κ°μ‚¬ν•©λ‹ˆλ‹€.

사싀, λ‚˜λŠ” 같은 였λ₯˜λ₯Ό μ–»μ—ˆμ§€λ§Œ λ‹€λ₯Έ 이유둜. 둜 인해 λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.
λ‚΄ μ•±μ˜ url.py μ•ˆμ— 뢙여넣은 debug-toolbar url 경둜,
ν”„λ‘œμ νŠΈμ˜ url.py μ•ˆμ— λ„£λŠ” λŒ€μ‹ 

2017λ…„ 3μ›” 25일 μ˜€ν›„ 12μ‹œ 3뢄에 "NomadDemon" [email protected] 이 μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€.

λ„€, μ•Œμ•„λƒˆμŠ΅λ‹ˆλ‹€.
λ¨Όμ € ꡬ성에 λͺ‡ 가지 λ¬Έμ œκ°€ μžˆμ—ˆκ³  항상 prod ꡬ성이 λ‹€μŒκ³Ό ν•¨κ»˜ μ‚¬μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
디버그 = 거짓. - κ³ μ •

그런 λ‹€μŒ 도ꡬ λͺ¨μŒμ΄ ν‘œμ‹œλ˜μ§€ μ•ŠλŠ” λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.
HTTP λŒ€μ‹  SOCK μ˜΅μ…˜κ³Ό ν•¨κ»˜ gunicorn을 μ‚¬μš©ν•  λ•Œ remote_addr은
톡과. λ‚΄ μžμ‹ μ˜ "디버깅 μ‚¬μš©μžλ₯Ό μœ„ν•œ μœ νš¨μ„± 검사기"λ₯Ό μˆ˜λ™μœΌλ‘œ μ‚¬μš©ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.

두 번째 뢀뢄은 λ‹€λ₯Έ μ‚¬μš©μžμ—κ²Œ μœ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

β€”
당신이 λŒ“κΈ€μ„ λ‹¬μ•˜κΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/jazzband/django-debug-toolbar/issues/911#issuecomment-289207638 ,
λ˜λŠ” μŠ€λ ˆλ“œ μŒμ†Œκ±°
https://github.com/notifications/unsubscribe-auth/AECBuNt3Zeul4JCyIhkb74hoRCbnCs80ks5rpQKggaJpZM4Lwdtd
.

감사 ν•΄μš”. 이 λ¬Έμ œλŠ” κ·Έλ•Œ 닫을 수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. 디버그 도ꡬ λͺ¨μŒμ΄ 이제 두 μ‚¬λžŒ λͺ¨λ‘μ—κ²Œ μž‘λ™ν•œλ‹€λŠ” μ†Œμ‹μ„ λ“£κ²Œ λ˜μ–΄ κΈ°μ©λ‹ˆλ‹€!

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰