1
私はdjango 1.8を使用しています。私はビューの1つにdjango.views.generic.View
クラスを使用しています。 urls.pyでdjangoクラスベースのビューはview_argsとview_kwargsを受け付けません
class CommonView(View):
func_name = 'view_func'
http_method_names = ["get", "post"]
def get(self, request, *args, **kwargs):
return render(request, 'template.html', {})
は、私は私が眺め応答でいくつかの作業をやっているミドルウェアを書かれており、process_view
方法
class CommonMiddleware(object):
def process_view(self, request, view_func, view_args, view_kwargs):
response = view_func(request, *view_args, **view_kwargs)
""" Do something"""
return response
をオーバーライドしますが、この行response = view_func(request, *view_args, **view_kwargs)
でいる
url(r'^common/$',CommonView),
を追加しました私はエラーが発生している
__init__() takes exactly 1 argument (3 given)
Request Method: POST
Request URL: http://127.0.0.1:8000/common/
Django Version: 1.8
Exception Type: TypeError
Exception Value:
__init__() takes exactly 1 argument (3 given)
とその前に私はビュー機能のfunc_name
をチェックする必要があります。しかし、私はfunc_name
アトリビュートをview_func
から取得しようとしています。AttributeError
そのCommonView has no attribute func_name
を取得していますが、すべての機能ベースのビューから取得しています。
からそれを呼び出している間、あなたのクラスベースのビューで
as_view()
を追加するのを忘れを使用する必要があり、このラインで
あるああ、それはあります愚かな間違い。エラーを見つけるために数時間を費やしました。 –