0

私は小さなアプリを書いています。見つけたビューデコレータを使いたいです。これはスニペットで、これはその使用法を説明する投稿です。Apache サーバー (2.2) を実行しており、Django は最新です。ビューを装飾しました。取得しようとすると、AttributeError が発生します。

Request Method: GET
Request URL: http://localhost/redb/test/

Django Version: 1.5.1
Python Version: 2.7.5
Installed Applications:
('django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.admin',
 'django.contrib.admindocs',
 'redb_app')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')

Traceback:
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
  187.                 response = middleware_method(request, response)
File "C:\Python27\lib\site-packages\django\middleware\common.py" in process_response
  109.         if response.status_code == 404:

Exception Type: AttributeError at /redb/test/
Exception Value: 'function' object has no attribute 'status_code'

これは私がそれを使用している方法です:

@logged_in_or_basicauth
def test_handler(request):
    return HttpResponse("Test!")

ありがとう!

4

1 に答える 1

1

デコレータは引数を取るため、引数realmを指定せずにデフォルトの "" にした場合でも、デコレータを呼び出す必要があります。

@logged_in_or_basicauth()
def test_handler(request):
    return HttpResponse("Test!")
于 2013-07-23T21:13:15.800 に答える