2016-08-05 8 views
4

ジャンゴ1.10インストール:TypeError例外:__init __()は1つの位置引数を取りますが、2は

ジャンゴ・デバッグ・ツールバー== 1.5

新しいプロジェクト(私はしましたが与えられましたちょうどDjangoをインストールしました)。 Django Debug Toolbarをインストールしようとしています。

ドキュメント:https://django-debug-toolbar.readthedocs.io/en/stable/installation.html#prerequisites

文書によると、ジャンゴ・デバッグ・ツールバーのこのリリースは、Djangoの1.10と互換性があります。

私が間違って行ったことを理解できたら助かりますか?

settings.py

# { django-debug-toolbar 
DEBUG_TOOLBAR_PATCH_SETTINGS = False 
INTERNAL_IPS = ['127.0.0.1', ] 
if DEBUG: 
    MIDDLEWARE += ['debug_toolbar.middleware.DebugToolbarMiddleware',] 
    INSTALLED_APPS += ['debug_toolbar',] 
# } django-debug-toolbar 

urls.py

from django.conf import settings 
from django.conf.urls import include 
if settings.DEBUG: 
    import debug_toolbar 
    urlpatterns += [ 
     url(r'^__debug__/', include(debug_toolbar.urls)), 
    ] 

トレースバック

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x7f97d6ab9840> 
Traceback (most recent call last): 
    File "/home/michael/workspace/venv/photoarchive/lib/python3.5/site-packages/django/utils/autoreload.py", line 226, in wrapper 
    fn(*args, **kwargs) 
    File "/home/michael/workspace/venv/photoarchive/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 142, in inner_run 
    handler = self.get_handler(*args, **options) 
    File "/home/michael/workspace/venv/photoarchive/lib/python3.5/site-packages/django/contrib/staticfiles/management/commands/runserver.py", line 27, in get_handler 
    handler = super(Command, self).get_handler(*args, **options) 
    File "/home/michael/workspace/venv/photoarchive/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 64, in get_handler 
    return get_internal_wsgi_application() 
    File "/home/michael/workspace/venv/photoarchive/lib/python3.5/site-packages/django/core/servers/basehttp.py", line 49, in get_internal_wsgi_application 
    return import_string(app_path) 
    File "/home/michael/workspace/venv/photoarchive/lib/python3.5/site-packages/django/utils/module_loading.py", line 20, in import_string 
    module = import_module(module_path) 
    File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 986, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 969, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 673, in _load_unlocked 
    File "<frozen importlib._bootstrap_external>", line 665, in exec_module 
    File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed 
    File "/home/michael/workspace/photoarchive/photoarchive/wsgi.py", line 16, in <module> 
    application = get_wsgi_application() 
    File "/home/michael/workspace/venv/photoarchive/lib/python3.5/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application 
    return WSGIHandler() 
    File "/home/michael/workspace/venv/photoarchive/lib/python3.5/site-packages/django/core/handlers/wsgi.py", line 153, in __init__ 
    self.load_middleware() 
    File "/home/michael/workspace/venv/photoarchive/lib/python3.5/site-packages/django/core/handlers/base.py", line 82, in load_middleware 
    mw_instance = middleware(handler) 
TypeError: __init__() takes 1 positional argument but 2 were given 

答えて

3

私はMIDDミドルウェアを変更settings.pyのLEWARE_CLASSES それは私の仕事です!

+3

- 現在の形では、あなたの答えはしていませんコミュニティの他の人があなたが解決/回答にしたことを理解するのに役立つ説明を提供してください。具体的には、これらの設定がどのように機能するかを説明する必要があります。 – ishmaelMakitla

+0

MIDDLEWAREをMIDDLEWARE_CLASSESに変更すると、MIDDLEWARE_CLASSESの値は無視されます。 警告: ?:(1_10.W001)MIDDLEWARE_CLASSESの設定はDjango 1.10では廃止され、MIDDLEWAREの設定が優先されます。 MIDDLEWAREを設定したので、MIDDLEWARE_CLASSESの値は無視されます。 彼がそれを実行できる理由は... 公式ドキュメント:https://docs.djangoproject.com/en/dev/releases/110 /#new-style-middleware – RVE

10

ジャンゴ1.10ミドルウェアの導入された新しいスタイル:

https://docs.djangoproject.com/en/1.10/releases/1.10/#new-style-middleware

その変化に関連a bug in django-debug-toolbarがありました。バージョン1.6以降のバグis now fixedですので、latest version released to PyPIを使用してください。後でジャンゴ1.10または1.6よりも古いジャンゴ・デバッグ・ツールバーのバージョンを使用する必要がある場合


することは、あなたはDjangoの設定でMIDDLEWARE_CLASSESにミドルウェアを変更することができます。

1

既に固定されています。ミドルウェアの名前を変更する必要はありません。ただ、gitのから直接インストール:

pip install https://github.com/jazzband/django-debug-toolbar/archive/master.zip 

、代わりのstablelatestドキュメントを使用:あなたは本当にこれが を動作するはずです理由として、いくつかの説明を追加する必要があります http://django-debug-toolbar.readthedocs.io/en/latest/

+0

9月29日現在、推奨される[Explicit Setup](http://django-debug-toolbar.readthedocs.io/en/stable/installation.html#explicit-setup)を使用する場合、 PyPIからの古いPythonインストール版は動作しません。上記のようにgithubからインストールします。 – Jheasly

関連する問題