私は通常、Python 2.6がインストールされたUbuntu 10.04マシンで動作します。私は、次のデコレータを持っている:同じマシンで期待どおりにDjango:特定の設定でデコレータの引数でエラーが発生する
def owner_required(view_func, Model):
'''
checks if the object is being accessed but its owner
'''
def decorator(view_func):
@wraps(view_func, assigned=available_attrs(view_func))
def _wrapped_view(request, *args, **kwargs):
obj = Model.objects.get(pk=int(kwargs['pk']))
if obj.user == request.user:
return view_func(request, *args, **kwargs)
return HttpResponse('Forbidden')
return _wrapped_view
return decorator(view_func)
すべてが働いています。
私のラップトップでUbuntu 11.10とpython 2.7.2を実行すると問題が発生します。
どのようなページ、私がアクセスしようと、私は次のエラーを取得:
url(r'^(?P<pk>\d+)/$', name = 'my_view', \
view = owner_required(login_required(\
DetailView.as_view(model=MyModel,\
template_name='myapp/view.html')),MyModel))
:私のmyappに/ urls.pyで
TypeError: owner_required() takes exactly 1 argument (2 given)
を、私はエラーの原因となっている次の行を、持っていますだから、owner_required
は、2つの引数を
を受けている:login_required
とMyModel
の結果で問題を引き起こしている可能性がありますか?私はubuntuとpythonのバージョンしか提供していません。他に何が起こるのかわかりません。この問題を解決するために他にどのような "変数"を見なければならないでしょうか?両方ともvirtualenvと同じdjangoバージョンで動作しています。1.3.1