31

すぐに: はい、INTERNAL_IPS については知っています。

仕事の統合とテストでdjangoアプリを開こうとしています。デバッグや多くの変更や最適化が行われることはわかっているので、Django Debug Toolbarが欲しいです。ただし、すべての同僚 (「クライアント」) には公開したくありません。

INTERNAL_IP 設定が私だけでは機能しない理由 (ところで、開発用コンピューターに静的 IP があります) は、Nginxをリバース プロキシとして使用し、Gunicornを使用しているためです。リバース プロキシのため、127.0.0.1 の internal_ip を使用すると、ネットワーク上の任意のコンピューターに DjDT が表示され、その IP を使用することが、自分で確認できる唯一の方法です。

私が探しているのは、自分の IP またはログイン名を取得して、ツールバーにアクセスできる唯一の名前にする方法です。ユーザー名のアクセス制限に関するスレッドを見たことがありますが、見つかりません...

副次的な質問として、ツールバーが IE でレンダリングされない理由を知っている人はいますか? 私にとっては、ページの下部に表として表示されるだけです。

4

3 に答える 3

47

試す:

def show_toolbar(request):
    return not request.is_ajax() and request.user and request.user.username == "yourusername"

DEBUG_TOOLBAR_CONFIG = {
    'SHOW_TOOLBAR_CALLBACK': 'projectname.settings.show_toolbar',
    # Rest of config
}
于 2011-07-01T14:31:21.823 に答える
9

受け入れられた答えはもはや正しくありません。新しいバージョンのツールバーでは、SHOW_TOOLBAR_CALLBACKキーの値が関数の完全なインポート パスを含む文字列である必要があります。したがって、コールバック関数をsettings.pyファイルに定義する場合は、次を追加する必要があります。

DEBUG_TOOLBAR_CONFIG = {
    'SHOW_TOOLBAR_CALLBACK': 'projectname.settings.show_toolbar',
}
于 2014-03-14T00:01:44.497 に答える
2

あなたが直面する場合No .rsplit() Error。新しいソリューション:

SHOW_TOOLBAR_CALLBACKは現在ドット文字列パスであり、callable をサポートしていないためです。

あなたの編集settings.py

def custom_show_toolbar(request):
     return True  # Always show toolbar, for example purposes only.

DEBUG_TOOLBAR_CONFIG = {
    'SHOW_TOOLBAR_CALLBACK': 'your_project_name.settings.custom_show_toolbar',
}
于 2014-04-22T10:33:47.247 に答える