Saya melihat pertanyaan lain dan tidak bisa mengetahuinya ...
Saya melakukan yang berikut ini untuk menginstal django-debug-toolbar:
- pip instal django-debug-toolbar
- ditambahkan ke kelas middleware:
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 Menambahkan INTERNAL_IPS:
INTERNAL_IPS = ('174.121.34.187',)
4 Menambahkan debug_toolbar ke aplikasi yang diinstal
Saya tidak mendapatkan kesalahan atau apa pun, dan bilah alat tidak muncul di halaman mana pun, bahkan admin.
Saya bahkan menambahkan direktori templat debug_toolbar ke folder saya TEMPLATE_DIRS
python
django
django-debug-toolbar
AlexBrand
sumber
sumber
INTERNAL_IPS
benar. Salah satu cara untuk memeriksa adalah dalam tampilan, cetakrequest.META['REMOTE_ADDR']
, lalu tambahkan keINTERNAL_IPS
.'*'
IP internal, tetapi itu tidak berhasil. Anda harus memasukkan IP tertentu.Jawaban:
Pertanyaan bodoh, tetapi Anda tidak menyebutkannya, jadi ... Apa yang
DEBUG
diatur? Itu tidak akan dimuat kecuali jika ituTrue
.Jika masih tidak berfungsi, coba tambahkan '127.0.0.1'
INTERNAL_IPS
juga.MEMPERBARUI
Ini adalah langkah terakhir upaya, Anda tidak harus melakukan ini, tetapi ini akan menunjukkan dengan jelas jika hanya ada beberapa masalah konfigurasi atau apakah ada masalah yang lebih besar.
Tambahkan yang berikut ini ke settings.py:
Itu secara efektif akan menghapus semua pemeriksaan oleh toolbar debug untuk menentukan apakah harus atau tidak memuatnya sendiri; itu akan selalu hanya memuat. Biarkan saja itu untuk tujuan pengujian, jika Anda lupa dan meluncurkannya, semua pengunjung Anda akan melihat bilah alat debug Anda juga.
Untuk konfigurasi eksplisit, lihat juga dokumen resmi instal di sini .
EDIT (17/06/2015):
Rupanya sintaks untuk opsi nuklir telah berubah. Sekarang dalam kamus sendiri:
Tes mereka menggunakan kamus ini.
sumber
runserver
pastikan Anda me-restart itu. Heck, restartrunserver
juga. Pastikan perubahan Anda ke settings.py benar - benar disimpan / dikomit. Anda mungkin ingin mencoba menghapus file * .pyc. Di * nix, Anda bisa melakukannya hanya denganfind . -name "*.pyc" -exec rm {} \;
dari root proyek. Akhirnya, jalankanpython manage.py shell
dan jalankanfrom django.conf import settings
dan periksa nilaisettings.INSTALLED_APPs
.INTERNAL_IPS
, itu untuk klien bukan server (Django). Dengan kata lain, Anda masukkan ke dalam Anda alamat IP sehingga Anda dapat melihat men-debug toolbar, tidak peduli apa IP situs dapat berjalan pada.SHOW_TOOLBAR_CALLBACK = lambda x: True
collectstatic
untuk membuat semuanya muncul.Debug toolbar menginginkan alamat ip dalam request.META ['REMOTE_ADDR'] diatur dalam pengaturan INTERNAL_IPS. Lemparkan pernyataan cetak di salah satu tampilan Anda seperti:
Dan kemudian muat halaman itu. Pastikan IP ada di pengaturan INTERNAL_IPS Anda di settings.py.
Biasanya saya pikir Anda akan dapat menentukan alamat dengan mudah dengan melihat alamat ip komputer Anda, tetapi dalam kasus saya, saya menjalankan server di Virtual Box dengan port forwarding ... dan siapa yang tahu apa yang terjadi. Meskipun tidak melihatnya di mana pun di ifconfig pada VB atau OS saya sendiri, IP yang muncul di kunci REMOTE_ADDR adalah apa trik mengaktifkan toolbar.
sumber
INTERNAL_IPS
dan mulai bekerja.Jika semuanya baik-baik saja, bisa jadi templat Anda tidak memiliki
<body>
tag penutup eksplisit—sumber
DEBUG_TOOLBAR_CONFIG = {'INSERT_BEFORE':'</head>'}
bekerjaVersi stabil saat ini 0.11.0 membutuhkan hal-hal berikut untuk menjadi benar agar bilah alat ditampilkan:
File pengaturan:
DEBUG = True
INTERNAL_IPS
untuk memasukkan alamat IP browser Anda, sebagai lawan dari alamat server. Jika menjelajah secara lokal ini seharusnyaINTERNAL_IPS = ('127.0.0.1',)
. Jika menjelajah jarak jauh cukup tentukan alamat publik Anda .INSTALLED_APPS = (..., 'debug_toolbar',)
MIDDLEWARE_CLASSES = ('debug_toolbar.middleware.DebugToolbarMiddleware', ...)
. Itu harus ditempatkan sedini mungkin dalam daftar.File template:
text/html
</html>
tag penutupFile statis:
Jika Anda menyajikan konten statis, pastikan Anda mengumpulkan css, js, dan html dengan melakukan:
Perhatikan pada versi mendatang dari Django-debug-toolbar
Namun, versi pengembangan yang lebih baru telah menambahkan default untuk pengaturan poin 2, 3 dan 4 yang membuat hidup sedikit lebih sederhana, seperti halnya versi pengembangan yang memiliki bug. Saya menemukan bahwa versi terbaru dari git menghasilkan
ImproperlyConfigured
kesalahan ketika menjalankan melalui nginx / uwsgi.Either way, jika Anda ingin menginstal versi terbaru dari github run:
Anda juga dapat mengkloning komit tertentu dengan melakukan:
sumber
Saya mencoba semuanya, dari pengaturan
DEBUG = True
, pengaturanINTERNAL_IPS
ke alamat IP klien saya, dan bahkan mengkonfigurasi Django Debug Toolbar secara manual (perhatikan bahwa versi terbaru membuat semua konfigurasi secara otomatis, seperti menambahkan middleware dan URL). Tidak ada yang berfungsi di server pengembangan jarak jauh (meskipun itu bekerja secara lokal). Satu-satunya hal yang berfungsi adalah mengonfigurasi bilah alat sebagai berikut:Ini menggantikan metode default yang memutuskan apakah bilah alat harus ditampilkan, dan selalu mengembalikan true.
sumber
Buruh pelabuhan
Jika Anda mengembangkan dengan server Django di wadah Docker dengan buruh pelabuhan, petunjuk untuk mengaktifkan bilah alat tidak berfungsi. Alasannya terkait dengan fakta bahwa alamat aktual yang perlu Anda tambahkan
INTERNAL_IPS
akan menjadi sesuatu yang dinamis, seperti 172.24.0.1. Daripada mencoba menetapkan nilai secara dinamisINTERNAL_IPS
, solusi langsung adalah mengganti fungsi yang memungkinkan bilah alat,settings.py
misalnya di:Ini juga harus bekerja untuk situasi routing dinamis lainnya, seperti gelandangan.
Berikut ini beberapa detail lagi untuk yang penasaran. Kode dalam django_debug_tool yang menentukan apakah akan menampilkan bilah alat memeriksa nilai
REMOTE_ADDR
seperti ini:jadi jika Anda tidak benar-benar tahu nilai
REMOTE_ADDR
karena perutean buruh pelabuhan dinamis Anda, bilah alat tidak akan berfungsi. Anda dapat menggunakan perintah jaringan buruh pelabuhan untuk melihat nilai IP dinamis, misalnyadocker network inspect my_docker_network_name
sumber
Saya memiliki toolbar berfungsi dengan sempurna. Dengan konfigurasi ini:
DEBUG = True
INTERNAL_IPS = ('127.0.0.1', '192.168.0.1',)
DEBUG_TOOLBAR_CONFIG = {'INTERCEPT_REDIRECTS': False,}
MIDDLEWARE_CLASSES
:Saya harap ini membantu
sumber
base.py
Anda mungkin ingin menambahkan ini kelocal.py
: AndaMIDDLEWARE_CLASSES = ('debug_toolbar.middleware.DebugToolbarMiddleware',) + MIDDLEWARE_CLASSES
.Tambahkan
10.0.2.2
ke INTERNAL_IPS Anda di Windows, ini digunakan dengan gelandangan secara internalINTERNAL_IPS = ('10 .0.2.2 ',)
Ini seharusnya bekerja.
sumber
Saya memiliki masalah yang sama dan akhirnya menyelesaikannya setelah beberapa googling.
Di INTERNAL_IPS, Anda harus memiliki alamat IP klien .
sumber
Hal lain yang dapat menyebabkan bilah alat tetap tersembunyi adalah jika tidak dapat menemukan file statis yang diperlukan. Template debug_toolbar menggunakan tag template {{STATIC_URL}}, jadi pastikan ada folder di file statis Anda yang disebut toolbar debug.
Perintah manajemen collectstatic harus menangani ini pada sebagian besar instalasi.
sumber
Saya mencoba konfigurasi dari pydanny cookiecutter-django dan itu berhasil untuk saya:
Saya hanya memodifikasinya dengan menambahkan
'debug_toolbar.apps.DebugToolbarConfig'
alih-alih'debug_toolbar'
seperti yang disebutkan dalam dokumen django-debug-toolbar resmi , karena saya menggunakan Django 1.7.sumber
Tambahan untuk jawaban sebelumnya:
jika bilah alat tidak muncul, tetapi dimuat di html (periksa situs Anda html di browser, gulir ke bawah)
masalahnya adalah file statis bilah alat debug tidak ditemukan (Anda juga dapat melihat ini di log akses situs Anda, misalnya, 404 kesalahan untuk /static/debug_toolbar/js/toolbar.js)
Itu dapat diperbaiki dengan cara berikut (contoh untuk nginx dan apache):
konfigurasi nginx:
konfigurasi apache:
Atau:
lebih lanjut tentang collectstatic di sini: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#collectstatic
Atau memindahkan secara manual folder debug_toolbar dari file statis debug_toolbar ke folder file statis yang Anda tentukan
sumber
Dalam kasus saya, itu adalah masalah lain yang belum disebutkan di sini: Saya punya GZipMiddleware dalam daftar middlewares saya.
Karena konfigurasi otomatis bilah alat debug menempatkan middleware bilah alat bilah alat di bagian atas, ia hanya mendapatkan "lihat" HTML yang di-gzip, yang tidak dapat ditambahkan bilah alat.
Saya menghapus GZipMiddleware di pengaturan pengembangan saya. Menyiapkan konfigurasi bilah alat debug secara manual dan menempatkan middleware setelah GZip juga akan berfungsi.
sumber
gzip_page
membuat bilah alat menghilang. docs.djangoproject.com/en/2.0/topics/http/decorators/…Dalam kasus saya, saya hanya perlu menghapus file yang dikompilasi python (
*.pyc
)sumber
Django 1.8.5:
Saya harus menambahkan yang berikut ke file url.py proyek untuk mendapatkan tampilan toolbar debug. Setelah itu bilah alat debug ditampilkan.
Django 1.10: dan lebih tinggi:
Juga jangan lupa untuk memasukkan debug_toolbar ke middleware Anda. Debug Toolbar sebagian besar diimplementasikan dalam middleware. Aktifkan itu di modul pengaturan Anda sebagai berikut: (Django versi yang lebih baru)
Middleware gaya lama: (perlu memiliki _CLASSES keywork di Middleware)
sumber
Ini bukan kasus untuk penulis spesifik ini tetapi saya hanya berjuang dengan Debug Toolbar tidak muncul dan setelah melakukan semua yang mereka tunjukkan, saya menemukan itu adalah masalah dengan pesanan MIDDLEWARE. Jadi menempatkan middleware di awal daftar bisa berhasil. Milik saya yang pertama:
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', )
sumber
Anda harus memastikan ada tag penutup di templat Anda.
Masalah saya adalah bahwa tidak ada tag html biasa di templat saya, saya hanya menampilkan konten dalam teks biasa. Saya menyelesaikannya dengan mewarisi setiap file html dari base.html, yang memiliki tag.
sumber
Bagi saya ini sesederhana mengetik
127.0.0.1:8000
ke bilah alamat, daripadalocalhost:8000
yang tampaknya tidak cocok dengan INTERNAL_IPS.sumber
Saya mendapat masalah yang sama, saya menyelesaikannya dengan melihat log kesalahan Apache. Saya menjalankan apache di mac os x dengan mod_wsgi Folder tamplete debug_toolbar tidak dimuat
Sampel log:
Saya hanya menambahkan baris ini ke file VirtualHost saya:
sumber
Saya memiliki masalah yang sama menggunakan Vagrant. Saya memecahkan masalah ini dengan menambahkan
::ffff:192.168.33.1
ke INTERNAL_IPS seperti contoh di bawah ini.Ingat itu
192.168.33.10
adalah IP di jaringan pribadi saya di Vagrantfile.sumber
Saya mengalami masalah ini dan harus menginstal bilah alat debug dari sumber.
Versi 1.4 memiliki masalah yang tersembunyi jika Anda menggunakan PureCSS dan tampaknya kerangka kerja CSS lainnya.
Ini adalah komit yang memperbaikinya.
Dokumen menjelaskan cara menginstal dari sumber.
sumber
Bagi siapa saja yang menggunakan Pycharm 5 - debug template tidak berfungsi di sana dalam beberapa versi. Diperbaiki pada 5.0.4, vesions yang terpengaruh - 5.0.1, 5.0.2 Periksa masalah
Habiskan BANYAK waktu untuk mengetahuinya. Mungkin akan membantu seseorang
sumber
Dalam kode yang saya kerjakan, beberapa permintaan kecil dibuat selama menangani permintaan utama (ini adalah kasus penggunaan yang sangat spesifik). Itu adalah permintaan yang ditangani oleh utas Django yang sama. Django debug toolbar (DjDT) tidak mengharapkan perilaku ini dan menyertakan bilah alat DjDT ke respons pertama dan kemudian menghapus statusnya untuk utas. Jadi ketika permintaan utama dikirim kembali ke browser, DjDT tidak dimasukkan dalam respons.
Pelajaran yang dipelajari: DjDT menyimpan status itu per utas. Ini menghapus status utas setelah tanggapan pertama.
sumber
Apa yang membuat saya adalah browser yang ketinggalan jaman!
Melihat bahwa ia memuat beberapa stylesheet dari bilah alat debug dan menduga itu mungkin masalah front-end.
sumber
Saya tahu pertanyaan ini agak lama, tapi hari ini saya menginstal django-toolbar dengan buruh pelabuhan dan menemukan masalah yang sama, ini menyelesaikannya untuk saya
Seperti yang saya baca di komentar, masalahnya adalah buruh pelabuhan menggunakan ip dinamis, untuk menyelesaikan ini kita bisa mendapatkan ip dari kode di atas
sumber
Satu hal bodoh membuat saya .. bahwa jika Anda menggunakan apache wsgi, ingatlah untuk menyentuh file .wsgi untuk memaksa kompilasi ulang kode Anda. buang waktu saya 20 menit untuk men-debug kesalahan bodoh :(
sumber