私はGuardianのpermission_requiredで装飾しようとしているCB DeleteViewを持っています。アクセス権は、ログインしているユーザーおよびDeleteViewのオブジェクトに対するものでなければなりません。ガーディアンのドキュメントはこれについてあまり明確ではないので、誰かが明確にできるかどうか疑問に思っています。Django Guardian - クラスベースのビューでpermission_requiredデコレータを使用するにはどうすればよいですか?
6
A
答えて
0
クラスベースビューのすべてのインスタンスをデコレートするには、クラス定義自体をデコレートする必要があります。これを行うには、私の解決策(あなたのケースに適用される)
class ExampleView(TemplateView):
template_name = 'Example.html'
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
return super(ExampleView, self).dispatch(*args, **kwargs)
+0
私はこれを認識しています。しかし、私は特に、CBVのGuardianパーミッションデコレータにユーザとモデルオブジェクトを含める方法を尋ねています。ありがとう! –
4
は、私はここで、ほぼ同じ問題が発生したため、class.ForのXAMPLEの発送()メソッドにデコレータを適用します。
ビューをあなたはaccept_global_permsパラメータを渡すことができるの.py
class MyModelDeleteView(DeleteView):
model=MyModel
@method_decorator(permission_required_or_403('myapp.delete_mymodel',
(MyModel, 'slug', 'slug'), accept_global_perms=True))
def dispatch(self, *args, **kwargs):
return super(MyModelDeleteView, self).dispatch(*args, **kwargs)
注意、それはデフォルトではFalse です。 'myapp.delete_mymodel'のユーザーは、MyModelというオブジェクトを削除できます。これは、たとえばモデレーターにとって便利です。
関連する問題
- 1. django:このビューをクラスベースの汎用ビューに移行するにはどうすればよいですか?
- 2. Djangoのテストでpermission_requiredデコレータを使用することはできますか?
- 3. インスタンスメソッドでクラスベースのデコレータを使用するにはどうすればよいですか?
- 4. as_view()(クラスベースのビュー用)をデコレータに実装できますか?
- 5. クラスベースの汎用ビューでページネーションを使用するにはどうすればよいですか?
- 6. これはdjangoクラスベースのビューの悪い使用ですか?
- 7. Django/Pythonビューのデコレータを作成するにはどうすればよいですか?
- 8. 関数ベースのビューからオブジェクトをクラスベースのビューに渡すにはどうすればいいですか?
- 9. HTMLボタンのDjangoでクラスベースのビューを使用するには?
- 10. Djangoクラスベースのビュー - 予期せぬデコレータの振る舞い
- 11. Djangoでビューを改善するにはどうすればよいですか?
- 12. Djangoのクラスベースのビューで `as_view`をどのようにオーバーライドしますか?
- 13. クラスベースのビューはDjangoコミュニティで広く使用されていますか?
- 14. Djangoのクラスベースのビューにパラメータを持つ関数デコレータ
- 15. jQueryを使用してJavaScriptでクラスベースのオブジェクトを取得するにはどうすればよいですか?
- 16. クラスベースの汎用ビューに2つのモデルを渡すにはどうすればいいですか
- 17. モジュールをDjangoで使用するにはどうすればよいですか?
- 18. djangoでget_next_by_FOO()を使用するにはどうすればよいですか?
- 19. django-guardianとdjango-ruleを一緒に使用できますか?
- 20. クラスベースの詳細ビューからインスタンスを取得して返すにはどうすればよいですか?
- 21. クラスベースのビューに適用されるデコレータの作成
- 22. Djangoでクラスベースのビューを使用しているユーザをログに記録する
- 23. ModelChoiceFieldを使用したDjangoクラスベースのビュー
- 24. get_queryset()を使用したDjangoクラスベースのビュー
- 25. djangoで非クラスベースのビューからユーザーを保存するには?
- 26. メソッドでデコレータを使用するには?私はクラスの外にそれを置く、メソッドのデコレータを使用するにはどうすればよい
- 27. 組み込みdjangoのログアウトビューに@login_requiredデコレータを追加するにはどうすればよいですか?
- 28. Django - ビューとテンプレートで特定のカスタム権限を使用するにはどうすればいいですか?
- 29. SQLビューでgetdate()を使用しないようにするにはどうすればよいですか?
- 30. djangoでクラスベースの汎用ビューを使用して動的テンプレート名をどうやっていますか?
あなたの質問はこれに似ています。チェックアウトしてください。 http://stackoverflow.com/questions/6069070/how-to-use-permission-required-decorators-on-django-class-based-views –