django-debug-toolbar ไม่ปรากฏขึ้น


134

ผมดูคำถามอื่นแล้วคิดไม่ออก ...

ฉันทำสิ่งต่อไปนี้เพื่อติดตั้ง django-debug-toolbar:

  1. pip ติดตั้ง django-debug-toolbar
  2. เพิ่มในคลาสมิดเดิลแวร์:
MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'debug_toolbar.middleware.DebugToolbarMiddleware',
)

3 เพิ่ม INTERNAL_IPS:

INTERNAL_IPS = ('174.121.34.187',)

4 เพิ่ม debug_toolbar ไปยังแอพที่ติดตั้ง

ฉันไม่ได้รับข้อผิดพลาดใด ๆ และแถบเครื่องมือไม่ปรากฏในหน้าใด ๆ แม้แต่ผู้ดูแลระบบ

ฉันยังเพิ่มไดเร็กทอรีของเทมเพลต debug_toolbar ในไฟล์ TEMPLATE_DIRS


9
หากคุณใช้ Vagrant ตรวจสอบให้แน่ใจว่าINTERNAL_IPSถูกต้อง วิธีหนึ่งในการตรวจสอบคือในมุมมองพิมพ์ของคุณrequest.META['REMOTE_ADDR']จากนั้นเพิ่มลงในINTERNAL_IPSไฟล์.
Will

1
สิ่งนี้อาจช่วยใครบางคนได้ ฉันพยายามเพิ่ม'*'IP ภายใน แต่ไม่ได้ผล คุณต้องป้อน IP เฉพาะ
Luv33preet

ใน settings.py ของฉันตอนนี้เป็น MIDDLEWARE เท่านั้นไม่ใช่ MIDDLEWARE_CLASSES
เบอร์ตี้

คำตอบ:


177

คำถามโง่ ๆ แต่คุณไม่ได้พูดถึงมัน ... DEBUGตั้งค่าเป็นอะไร? Trueมันจะไม่โหลดเว้นแต่จะเป็น

หากยังใช้งานไม่ได้ให้ลองเพิ่ม '127.0.0.1' เข้าไปINTERNAL_IPSด้วย

อัปเดต

นี่คือการย้ายครั้งสุดท้ายความพยายามที่คุณไม่ควรมีการทำเช่นนี้ แต่มันชัดเจนจะแสดงว่ามีเพียงบางปัญหาการกำหนดค่าหรือไม่ว่ามีบางประเด็นที่มีขนาดใหญ่

เพิ่มสิ่งต่อไปนี้ใน settings.py:

def show_toolbar(request):
    return True
SHOW_TOOLBAR_CALLBACK = show_toolbar

ที่จะลบการตรวจสอบทั้งหมดอย่างมีประสิทธิภาพโดยแถบเครื่องมือดีบักเพื่อตรวจสอบว่าควรหรือไม่ควรโหลดตัวเอง มันจะโหลดเสมอ ปล่อยไว้เพื่อวัตถุประสงค์ในการทดสอบเท่านั้นหากคุณลืมและเปิดใช้งานผู้เยี่ยมชมทั้งหมดของคุณจะได้เห็นแถบเครื่องมือแก้ไขข้อบกพร่องของคุณด้วย

สำหรับการกำหนดค่าอย่างชัดเจนนอกจากนี้ยังเห็นอย่างเป็นทางการติดตั้งเอกสารที่นี่

แก้ไข (17 มิ.ย. 2558):

เห็นได้ชัดว่าไวยากรณ์ของตัวเลือกนิวเคลียร์มีการเปลี่ยนแปลง ตอนนี้อยู่ในพจนานุกรมของตัวเองแล้ว:

def show_toolbar(request):
    return True
DEBUG_TOOLBAR_CONFIG = {
    "SHOW_TOOLBAR_CALLBACK" : show_toolbar,
}

การทดสอบของพวกเขาใช้พจนานุกรมนี้


3
ใช่แล้วมีปัญหาใหญ่เกิดขึ้นที่นี่ หากคุณใช้อย่างอื่นนอกเหนือจากนั้นrunserverตรวจสอบให้แน่ใจว่าคุณรีสตาร์ทแล้ว ห่าเริ่มใหม่runserverด้วย ตรวจสอบให้แน่ใจว่าการเปลี่ยนแปลงของคุณเพื่อ settings.py จริงได้บันทึกไว้ / มุ่งมั่น คุณอาจต้องการลองลบไฟล์ * .pyc ใน * nix คุณสามารถทำได้ง่ายๆfind . -name "*.pyc" -exec rm {} \;จากรูทโปรเจ็กต์ สุดท้ายเรียกใช้python manage.py shellและดำเนินการfrom django.conf import settingsและตรวจสอบค่าของsettings.INSTALLED_APPs.
Chris Pratt

3
ฉันไม่แน่ใจว่าคุณหมายถึงอะไรกับคำถามสุดท้าย แต่ถ้าคุณกำลังอ้างถึงคำถามINTERNAL_IPSเหล่านี้มีไว้สำหรับลูกค้าไม่ใช่เซิร์ฟเวอร์ (Django) กล่าวอีกนัยหนึ่งคือคุณใส่ที่อยู่IP ของคุณเพื่อให้คุณสามารถเห็นแถบเครื่องมือแก้ไขข้อบกพร่องไม่ว่าไซต์จะทำงานบน IP ใดก็ตาม
Chris Pratt

10
INTERNAL_IPS มีฉันเหมือนกัน .. ขอบคุณสำหรับข้อมูล
Lee

12
หรือแม้กระทั่งSHOW_TOOLBAR_CALLBACK = lambda x: True
John Mee

6
@schillingt ใช่ขอโทษฉันควรตรวจสอบสิ่งนี้ ฉันคิดว่าฉันต้องวิ่งcollectstaticเพื่อให้ทุกอย่างปรากฏ
Rob Grant

81

แถบเครื่องมือดีบักต้องการให้ที่อยู่ IP ในการร้องขอ META ['REMOTE_ADDR'] ถูกตั้งค่าในการตั้งค่า INTERNAL_IPS ใส่คำสั่งพิมพ์ในมุมมองของคุณเช่น:

print("IP Address for debug-toolbar: " + request.META['REMOTE_ADDR'])

แล้วโหลดหน้านั้น. ตรวจสอบให้แน่ใจว่า IP อยู่ในการตั้งค่า INTERNAL_IPS ของคุณใน settings.py

โดยปกติฉันคิดว่าคุณจะสามารถระบุที่อยู่ได้อย่างง่ายดายโดยดูที่ที่อยู่ IP ของคอมพิวเตอร์ของคุณ แต่ในกรณีของฉันฉันกำลังเรียกใช้เซิร์ฟเวอร์ใน Virtual Box พร้อมการส่งต่อพอร์ต ... และใครจะรู้ว่าเกิดอะไรขึ้น แม้ว่าจะไม่เห็นมันที่ใดก็ได้ใน ifconfig บน VB หรือระบบปฏิบัติการของฉันเอง IP ที่ปรากฏในคีย์ REMOTE_ADDR คือสิ่งที่ทำให้เกิดเคล็ดลับในการเปิดใช้งานแถบเครื่องมือ


2
ฉันกำลังเข้าสู่หน้าของฉันผ่านทาง nginx proxy ดังนั้น remote_addr จึงเป็นพร็อกซีของฉันไม่ใช่ IP จริงของฉัน ฉันต้องการเพิ่มที่อยู่ IP ของพร็อกซีINTERNAL_IPSและมันก็เริ่มทำงาน
Kurt

1
จากเครื่องแขกของฉันใน VirtualBox เครื่องโฮสต์ของฉันจะเห็นเป็น 10.0.0.2 หากสามารถช่วยใครสักคนได้ :)
mrmuggles

มีประโยชน์มากในการตรวจสอบ IP หากคุณใช้การจำลองเสมือนเช่น VAGRANT
andilabs

3
ในนักเทียบท่า REMOTE_ADDR ของฉันไม่ใช่สิ่งที่ฉันคิด
Aaron McMillin

51

หากทุกอย่างเรียบร้อยดีอาจเป็นไปได้ว่าเทมเพลตของคุณไม่มี<body>แท็กปิดที่ชัดเจน-

หมายเหตุ: แถบเครื่องมือดีบักจะแสดงตัวเองก็ต่อเมื่อ mimetype ของการตอบกลับเป็น text / html หรือ application / xhtml + xml และมีแท็กปิด


ในกรณีของฉันการเพิ่มใน settings.py ใช้DEBUG_TOOLBAR_CONFIG = {'INSERT_BEFORE':'</head>'}งานได้
wojteck

29

เวอร์ชันเสถียรปัจจุบัน 0.11.0 ต้องการสิ่งต่อไปนี้เพื่อให้แถบเครื่องมือแสดง:

ไฟล์การตั้งค่า:

  1. DEBUG = True
  2. INTERNAL_IPSเพื่อรวมที่อยู่ IP ของเบราว์เซอร์ของคุณซึ่งตรงข้ามกับที่อยู่เซิร์ฟเวอร์ INTERNAL_IPS = ('127.0.0.1',)หากการเรียกดูในประเทศนี้ควรจะเป็น หากการเรียกดูระยะไกลเพียงแค่ระบุที่อยู่สาธารณะของคุณ
  3. แอป debug_toolbar ที่จะติดตั้งเช่น INSTALLED_APPS = (..., 'debug_toolbar',)
  4. MIDDLEWARE_CLASSES = ('debug_toolbar.middleware.DebugToolbarMiddleware', ...)ตรวจแก้จุดบกพร่องระดับแถบเครื่องมือตัวกลางที่จะเพิ่มคือ ควรวางไว้ให้เร็วที่สุดในรายการ

ไฟล์เทมเพลต:

  1. ต้องเป็นประเภท text/html
  2. ต้องมี</html>แท็กปิด

ไฟล์คงที่:

หากคุณให้บริการเนื้อหาคงที่ตรวจสอบให้แน่ใจว่าคุณรวบรวม css, js และ html โดยทำ:

./manage.py collectstatic 


หมายเหตุเกี่ยวกับ django-debug-toolbar เวอร์ชันที่กำลังจะมาถึง

เวอร์ชันการพัฒนาที่ใหม่กว่าได้เพิ่มค่าเริ่มต้นสำหรับการตั้งค่าจุดที่ 2, 3 และ 4 ซึ่งทำให้ชีวิตง่ายขึ้นเล็กน้อยเช่นเดียวกับเวอร์ชันการพัฒนาใด ๆ ที่มีข้อบกพร่อง ฉันพบว่าเวอร์ชันล่าสุดจาก git ทำให้เกิดImproperlyConfiguredข้อผิดพลาดเมื่อทำงานผ่าน nginx / uwsgi

ไม่ว่าจะด้วยวิธีใดก็ตามหากคุณต้องการติดตั้งเวอร์ชันล่าสุดจาก github ให้รัน:

pip install -e git+https://github.com/django-debug-toolbar/django-debug-toolbar.git#egg=django-debug-toolbar 

คุณยังสามารถโคลนคอมมิตเฉพาะได้โดยทำ:

pip install -e git+https://github.com/django-debug-toolbar/django-debug-toolbar.git@ba5af8f6fe7836eef0a0c85dd1e6d7418bc87f75#egg=django_debug_toolbar

2
จริงๆแล้วมันคือแท็ก <body> </body> ซึ่งไม่จำเป็น </html>
Zgr3doo

21

ฉันลองทำทุกอย่างตั้งแต่การตั้งค่าDEBUG = Trueไปจนถึงการตั้งค่าINTERNAL_IPSไปจนถึงที่อยู่ IP ของไคลเอนต์ของฉันและแม้แต่การกำหนดค่า Django Debug Toolbar ด้วยตนเอง (โปรดทราบว่าเวอร์ชันล่าสุดจะทำการกำหนดค่าทั้งหมดโดยอัตโนมัติเช่นการเพิ่มมิดเดิลแวร์และ URL) ไม่มีอะไรทำงานในเซิร์ฟเวอร์การพัฒนาระยะไกล (แม้ว่าจะทำงานในเครื่อง) สิ่งเดียวที่ใช้งานได้คือการกำหนดค่าแถบเครื่องมือดังนี้:

DEBUG_TOOLBAR_CONFIG = {
    "SHOW_TOOLBAR_CALLBACK" : lambda request: True,
}

สิ่งนี้จะแทนที่เมธอดเริ่มต้นที่ตัดสินว่าควรแสดงแถบเครื่องมือหรือไม่และจะคืนค่าจริง


16

นักเทียบท่า

หากคุณกำลังพัฒนาด้วยเซิร์ฟเวอร์ Django ในคอนเทนเนอร์Dockerพร้อมนักเทียบท่าคำแนะนำในการเปิดใช้งานแถบเครื่องมือจะไม่ได้ผล เหตุผลนั้นเกี่ยวข้องกับความจริงที่ว่าที่อยู่จริงที่คุณต้องเพิ่มจะINTERNAL_IPSเป็นแบบไดนามิกเช่น 172.24.0.1 แทนที่จะพยายามตั้งค่าแบบไดนามิกINTERNAL_IPSวิธีแก้ปัญหาที่ตรงไปตรงมาคือการแทนที่ฟังก์ชันที่เปิดใช้งานแถบเครื่องมือในsettings.pyตัวอย่างของคุณ:

DEBUG_TOOLBAR_CONFIG = {
    'SHOW_TOOLBAR_CALLBACK': lambda _request: DEBUG
}


สิ่งนี้ควรใช้ได้กับสถานการณ์การกำหนดเส้นทางแบบไดนามิกอื่น ๆ เช่นคนจรจัด


นี่คือรายละเอียดเพิ่มเติมสำหรับผู้ที่อยากรู้อยากเห็น รหัสใน django_debug_tool ที่กำหนดว่าจะแสดงแถบเครื่องมือตรวจสอบค่าของREMOTE_ADDRสิ่งนี้หรือไม่:

if request.META.get('REMOTE_ADDR', None) not in INTERNAL_IPS:
       return False

ดังนั้นหากคุณไม่ทราบค่าREMOTE_ADDRเนื่องจากการกำหนดเส้นทางนักเทียบท่าแบบไดนามิกของคุณแถบเครื่องมือจะไม่ทำงาน คุณสามารถใช้คำสั่ง docker network เพื่อดูค่า IP แบบไดนามิกเช่นdocker network inspect my_docker_network_name


15

ฉันมีแถบเครื่องมือที่ทำงานได้อย่างสมบูรณ์แบบ ด้วยการกำหนดค่านี้:

  1. DEBUG = True
  2. INTERNAL_IPS = ('127.0.0.1', '192.168.0.1',)
  3. DEBUG_TOOLBAR_CONFIG = {'INTERCEPT_REDIRECTS': False,}
  4. มิดเดิลแวร์เป็นองค์ประกอบแรกในMIDDLEWARE_CLASSES:
MIDDLEWARE_CLASSES = (
    'debug_toolbar.middleware.DebugToolbarMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
)

ฉันหวังว่ามันจะช่วยได้


2
คุณควรแก้ไขที่อยู่ IP ของคุณจากคำตอบของคุณ เนื่องจากคนส่วนใหญ่ใช้งานบรอดแบนด์ในปัจจุบันและการเชื่อมต่อบรอดแบนด์ส่วนใหญ่แทบจะไม่เปลี่ยนที่อยู่ IP เลย คุณอาจไม่ต้องการให้สิ่งนั้นห้อยอยู่บน interwebs
Chris Pratt

192.168. *. * คือที่อยู่ IP ภายในภายในที่กำหนดให้กับคอมพิวเตอร์โดยเราเตอร์ ที่อยู่ IP ภายนอกแตกต่างกัน
Robeezy

@rpod นั่นคือเหตุผลที่ใครบางคนแก้ไขเป็นแบบนั้น
Yuji 'Tomita' Tomita

หากคุณใช้ One True Config File และต้องการเพียง Debug Toolbar ใน dev แทนที่จะเพิ่มลงใน middleware_classes base.pyคุณอาจต้องการเพิ่มสิ่งนี้ในlocal.py: MIDDLEWARE_CLASSES = ('debug_toolbar.middleware.DebugToolbarMiddleware',) + MIDDLEWARE_CLASSES.
Rob Grant

12

เพิ่ม10.0.2.2ใน INTERNAL_IPS ของคุณบน Windows ซึ่งใช้กับคนจรจัดภายใน

INTERNAL_IPS = ('10 .0.2.2 ',)

สิ่งนี้ควรใช้งานได้


1
ยืนยันว่าสิ่งนี้ช่วยแก้ปัญหาของฉันโดยใช้ Vagrant บน OSX
Josh

นี่เป็นวิธีแก้ปัญหาที่ถูกต้องที่สุดและเป็นไปได้มากที่สุดและเป็นวิธีที่ง่ายที่สุด :) ยืนยันการทำงานโดยใช้คนจรจัดบน windows 7
mislavcimpersak


4

อีกสิ่งหนึ่งที่อาจทำให้แถบเครื่องมือยังคงซ่อนอยู่คือหากไม่พบไฟล์คงที่ที่ต้องการ เทมเพลต debug_toolbar ใช้แท็กเทมเพลต {{STATIC_URL}} ดังนั้นตรวจสอบให้แน่ใจว่ามีโฟลเดอร์ในไฟล์แบบคงที่ซึ่งเรียกว่าแถบเครื่องมือดีบัก

คำสั่งการจัดการแบบรวบรวมสแตติกควรดูแลสิ่งนี้ในการติดตั้งส่วนใหญ่


3

เพิ่มเติมจากคำตอบก่อนหน้านี้:

หากแถบเครื่องมือไม่ปรากฏขึ้น แต่โหลดใน html (ตรวจสอบ html ของไซต์ของคุณในเบราว์เซอร์เลื่อนลง)

ปัญหาอาจเป็นไปได้ว่าไม่พบไฟล์คงที่ของแถบเครื่องมือดีบัก (คุณสามารถดูสิ่งนี้ได้ในบันทึกการเข้าถึงเว็บไซต์ของคุณเช่นข้อผิดพลาด 404 สำหรับ /static/debug_toolbar/js/toolbar.js)

สามารถแก้ไขได้ด้วยวิธีต่อไปนี้ (ตัวอย่างสำหรับ nginx และ apache):

กำหนดค่า nginx:

location ~* ^/static/debug_toolbar/.+.(ico|css|js)$ {
    root [path to your python site-packages here]/site-packages/debug_toolbar;
}

การกำหนดค่า apache:

Alias /static/debug_toolbar [path to your python site-packages here]/site-packages/debug_toolbar/static/debug_toolbar

หรือ:

manage.py collectstatic

เพิ่มเติมเกี่ยวกับ collectstatic ที่นี่: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#collectstatic

หรือด้วยตนเองย้ายโฟลเดอร์ debug_toolbar ของไฟล์คงที่ debug_toolbar ไปยังโฟลเดอร์ไฟล์คงที่ของคุณ


3

ฉันลองใช้การกำหนดค่าจากcookiecutter-django ของ pydannyและมันก็ใช้ได้สำหรับฉัน:

# django-debug-toolbar
MIDDLEWARE_CLASSES = Common.MIDDLEWARE_CLASSES + ('debug_toolbar.middleware.DebugToolbarMiddleware',)
INSTALLED_APPS += ('debug_toolbar',)

INTERNAL_IPS = ('127.0.0.1',)

DEBUG_TOOLBAR_CONFIG = {
    'DISABLE_PANELS': [
        'debug_toolbar.panels.redirects.RedirectsPanel',
    ],
    'SHOW_TEMPLATE_CONTEXT': True,
}
# end django-debug-toolbar

ฉันเพิ่งแก้ไขโดยเพิ่ม'debug_toolbar.apps.DebugToolbarConfig'แทน'debug_toolbar'ตามที่กล่าวไว้ในเอกสารdjango-debug-toolbar อย่างเป็นทางการเนื่องจากฉันใช้ Django 1.7


2

ในกรณีของฉันมันเป็นอีกปัญหาหนึ่งที่ยังไม่ได้กล่าวถึงที่นี่: ฉันมี GZipMiddleware อยู่ในรายชื่อมิดเดิ้ลแวร์

เนื่องจากการกำหนดค่าอัตโนมัติของแถบเครื่องมือดีบักทำให้มิดเดิลแวร์ของแถบเครื่องมือดีบักอยู่ด้านบนจึงได้รับเฉพาะ HTML ที่มีการบีบอัด "ดู" ซึ่งไม่สามารถเพิ่มแถบเครื่องมือได้

ฉันลบ GZipMiddleware ในการตั้งค่าการพัฒนาของฉัน การตั้งค่าคอนฟิกของแถบเครื่องมือดีบักด้วยตนเองและวางมิดเดิลแวร์หลัง GZip ก็ควรใช้งานได้เช่นกัน


แม้แต่การเปิดใช้ GZip ที่ระดับมุมมองด้วยก็gzip_pageทำให้แถบเครื่องมือหายไป docs.djangoproject.com/th/2.0/topics/http/decorators/…
Brachamul

2

ในกรณีของฉันฉันแค่ต้องการลบไฟล์ที่คอมไพล์ python ( *.pyc)


ขอบคุณสำหรับความคิดเห็นนี้มันช่วยให้ฉันมีอาการทางจิตเมื่อเช้านี้ หากทุกอย่างดูถูกต้อง - และโครงการนี้เคยใช้งานได้ดีสำหรับฉันมาก่อนลองทำดูว่าสามารถแก้ไขได้ DDT HTML / JS อยู่บนหน้าเว็บทุกอย่างดูดี แต่ก็ยังไม่ปรากฏ ฉันล้างไฟล์ pyc และมันก็เริ่มปรากฏขึ้นอีกครั้ง
เชน

2

django 1.8.5:

ฉันต้องเพิ่มสิ่งต่อไปนี้ลงในไฟล์ url.py ของโปรเจ็กต์เพื่อให้แสดงแถบเครื่องมือแก้ไขข้อบกพร่อง หลังจากนั้นแถบเครื่องมือดีบักจะปรากฏขึ้น

 from django.conf.urls import include
 from django.conf.urls import patterns
 from django.conf import settings


  if settings.DEBUG:
      import debug_toolbar
      urlpatterns += patterns('',
              url(r'^__debug__/', include(debug_toolbar.urls)),
              )

django 1.10:และสูงกว่า:

from django.conf.urls import include, url
from django.conf.urls import patterns
from django.conf import settings


if settings.DEBUG:

  import debug_toolbar
  urlpatterns =[
         url(r'^__debug__/', include(debug_toolbar.urls)),
         ] + urlpatterns

อย่าลืมใส่ debug_toolbar ลงในมิดเดิลแวร์ของคุณด้วย แถบเครื่องมือดีบักส่วนใหญ่จะใช้งานในมิดเดิลแวร์ เปิดใช้งานในโมดูลการตั้งค่าของคุณดังนี้: (django เวอร์ชันที่ใหม่กว่า)


MIDDLEWARE = [
# ...
'debug_toolbar.middleware.DebugToolbarMiddleware',
#

มิดเดิลแวร์แบบเก่า: (จำเป็นต้องมีคีย์เวิร์ค _CLASSES ในมิดเดิลแวร์)

MIDDLEWARE_CLASSES = [
# ...
'debug_toolbar.middleware.DebugToolbarMiddleware',
# ...
]

2

ฉันรู้ว่าคำถามนี้เก่าไปหน่อย แต่วันนี้ฉันติดตั้ง django-toolbar กับนักเทียบท่าและเจอปัญหาเดียวกันสิ่งนี้แก้ไขได้สำหรับฉัน

INTERNAL_IPS = ["127.0.0.1", "10.0.2.2"]

import socket
hostname, _, ips = socket.gethostbyname_ex(socket.gethostname())
INTERNAL_IPS += [".".join(ip.split(".")[:-1] + ["1"]) for ip in ips]

ตามที่ฉันอ่านในความคิดเห็นปัญหาคือนักเทียบท่าใช้ไดนามิก ip เพื่อแก้ปัญหานี้เราจะได้รับ ip จากรหัสด้านบน


1

นี่ไม่ใช่กรณีสำหรับผู้เขียนรายนี้ แต่ฉันเพิ่งประสบปัญหากับแถบเครื่องมือ Debug ไม่แสดงและหลังจากทำทุกอย่างที่พวกเขาชี้ให้เห็นแล้วฉันพบว่ามันมีปัญหากับคำสั่ง MIDDLEWARE ดังนั้นการวางมิดเดิลแวร์ในช่วงต้นรายการจึงสามารถทำงานได้ ฉันเป็นคนแรก:

MIDDLEWARE_CLASSES = ( 'debug_toolbar.middleware.DebugToolbarMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'dynpages.middleware.DynpageFallbackMiddleware', 'utils.middleware.UserThread', )


0

คุณต้องแน่ใจว่ามีแท็กปิดในเทมเพลตของคุณ

ปัญหาของฉันคือไม่มีแท็ก html ปกติในเทมเพลตของฉันฉันแค่แสดงเนื้อหาเป็นข้อความธรรมดา ฉันแก้ไขโดยการสืบทอดไฟล์ html ทุกไฟล์จาก base.html ซึ่งมีแท็ก


0

สำหรับฉันสิ่งนี้ทำได้ง่ายเพียงแค่พิมพ์127.0.0.1:8000ลงในแถบที่อยู่แทนที่จะlocalhost:8000เห็นได้ชัดว่าไม่ตรงกับ INTERNAL_IPS


0

ฉันพบปัญหาเดียวกันฉันแก้ไขได้โดยดูบันทึกข้อผิดพลาดของ Apache ฉันได้รับ apache ที่ทำงานบน mac os x ด้วย mod_wsgi โฟลเดอร์ tamplete ของ debug_toolbar ไม่ได้ถูกโหลด

ตัวอย่างบันทึก:

==> /private/var/log/apache2/dummy-host2.example.com-error_log <==
[Sun Apr 27 23:23:48 2014] [error] [client 127.0.0.1] File does not exist: /Library/WebServer/Documents/rblreport/rbl/static/debug_toolbar, referer: http://127.0.0.1/

==> /private/var/log/apache2/dummy-host2.example.com-access_log <==
127.0.0.1 - - [27/Apr/2014:23:23:48 -0300] "GET /static/debug_toolbar/css/toolbar.css HTTP/1.1" 404 234 "http://127.0.0.1/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:28.0) Gecko/20100101 Firefox/28.0"

ฉันเพิ่งเพิ่มบรรทัดนี้ในไฟล์ VirtualHost ของฉัน:

Alias /static/debug_toolbar /Library/Python/2.7/site-packages/debug_toolbar/static/debug_toolbar
  • แน่นอนคุณต้องเปลี่ยนเส้นทางหลามของคุณ

0

ฉันมีปัญหาเดียวกันกับการใช้ Vagrant ฉันแก้ไขปัญหานี้โดยเพิ่ม::ffff:192.168.33.1INTERNAL_IPS ตามตัวอย่างด้านล่าง

INTERNAL_IPS = (
    '::ffff:192.168.33.1',
)

จำไว้ว่านั่น192.168.33.10คือ IP ในเครือข่ายส่วนตัวของฉันใน Vagrantfile


0

ฉันมีปัญหานี้และต้องติดตั้งแถบเครื่องมือดีบักจากแหล่งที่มา

เวอร์ชัน 1.4 มีปัญหาที่ซ่อนอยู่หากคุณใช้ PureCSS และเห็นได้ชัดว่าเฟรมเวิร์ก CSS อื่น ๆ

นี่คือการกระทำที่แก้ไขสิ่งนั้น

เอกสารอธิบายวิธีการติดตั้งจากแหล่งที่มา


0

สำหรับใครก็ตามที่ใช้ Pycharm 5 - template debug จะใช้งานไม่ได้ในบางเวอร์ชัน แก้ไขใน 5.0.4 รุ่นที่ได้รับผลกระทบ - 5.0.1, 5.0.2 ตรวจสอบปัญหา

ใช้เวลามากมายเพื่อค้นหาสิ่งนั้น อาจจะช่วยใครสักคน


0

ในรหัสที่ฉันกำลังดำเนินการมีการร้องขอขนาดเล็กจำนวนมากระหว่างการจัดการคำขอหลัก (เป็นกรณีการใช้งานที่เฉพาะเจาะจงมาก) พวกเขาเป็นคำขอที่จัดการโดยเธรดของ Django เดียวกัน แถบเครื่องมือดีบัก Django (DjDT) ไม่คาดหวังพฤติกรรมนี้และรวมแถบเครื่องมือของ DjDT ไว้ในการตอบกลับครั้งแรกจากนั้นจะลบสถานะของเธรด ดังนั้นเมื่อส่งคำขอหลักกลับไปยังเบราว์เซอร์ DjDT จะไม่รวมอยู่ในการตอบกลับ

บทเรียนที่ได้รับ: DjDT บันทึกสถานะต่อเธรด จะลบสถานะของเธรดหลังจากการตอบกลับครั้งแรก


0

สิ่งที่ทำให้ฉันมีคือเบราว์เซอร์ที่ล้าสมัย!

สังเกตเห็นว่ามีการโหลดสไตล์ชีตบางส่วนจากแถบเครื่องมือการดีบักและเดาว่าอาจเป็นปัญหาส่วนหน้า


0

หลังจากลองผิดลองถูกหลายครั้งสิ่งนี้ใช้ได้กับฉันใน Django = 3.1 หลังจากเขียน internal_ip มิดเดิลแวร์ทั้งหมดต่อท้าย url แล้วให้ใส่รหัสนี้ใน settings.py ที่ด้านล่าง

def show_toolbar(request):
return True


DEBUG_TOOLBAR_CONFIG = {
"SHOW_TOOLBAR_CALLBACK": show_toolbar,
'INSERT_BEFORE': '</head>'
}

หลายคนแนะนำ SHOW_TOOLBAR_CALLBACK แต่ในกรณีของฉันมันใช้งานได้หลังจากเพิ่ม "INSERT_BEFORE" เท่านั้น


-1

ฉันมีเรื่องโง่อย่างหนึ่ง .. ที่ถ้าคุณใช้ apache wsgi อย่าลืมแตะไฟล์. wsgi เพื่อบังคับให้คอมไพล์โค้ดของคุณใหม่ เสียเวลาเพียง 20 นาทีในการแก้ไขข้อผิดพลาดโง่ ๆ :(

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.