2017-10-23 9 views
0

を:ジャンゴ "はAttributeError: '関数' オブジェクトが何の属性 'as_view' を持っていない" 私はエラー表示user_passes_testデコレータを使用する場合

"AttributeError: 'function' object has no attribute 'as_view'"

が、これは私のコードです:

urls.py:

url(r'^user/admin/$', UpdateAdminView.as_view(), name='admin'), 

views.py:

@user_passes_test(lambda u: u.is_superuser) 
@method_decorator(login_required, name='dispatch') 
class UpdateAdminView(TemplateView): 
    template_name = "admin.html" 
+0

メソッドデコレータを配置する必要があります。これを確認してくださいhttps://stackoverflow.com/questions/6069070/how-to-use-permission-required-decorators-on-django-class-based-views – Rohan

答えて

2

ログインが必要な場合と同じように、スーパーユーザーのチェックにメソッドデコレータを使用する必要があります。

ユーザーは、スーパーユーザでするにはログインする必要がありますので、あなたは、この場合にはlogin_requiredデコレータを削除することができます。

superuser_required = user_passes_test(lambda u: u.is_superuser) 

@method_decorator(superuser_required, name='dispatch') 
class UpdateAdminView(TemplateView): 
    template_name = "admin.html" 

クラスベースのビューの代わりに、UserPassesTestMixinを参照してください。

関連する問題