私のDjangoアプリケーションは現在、permission_required()関数によって保護されているURLを持っています。Django URLを呼び出さずに必要な権限を探しますか?
この関数は3つの異なる方法で呼び出されます。
- ハードコードされたパラメータを持つviews.pyのデコレータです。
- 自動生成されたパラメータを持つプレーン関数として、カスタムクラスベースの汎用ビューで使用します。
- ハードコードされたパラメータでurls.pyのビューを呼び出す関数として。
私は現在、メニューシステムをアプリケーションに追加しています。ユーザーが各メニューエントリのURLを要求する権限を持っているかどうかをメニューエントリに反映させる必要があります。 (そのエントリをグレイアウトするか隠すかによって)
のURLに要求されているアクセス許可があるかどうかの問い合わせ方法はありますか?はURLを要求していますか?
私が考えた唯一の解決策は、デコレータをパラメータのない 'menu_permssion_required()'デコレータで置き換え、すべての権限をPython構造体にハードコードすることです。私のカスタムクラスベースのGeneric Viewsは既に必要な権限を自動生成しているので、これは一歩後退しているようです。
現在のユーザーのURLアクセス許可を反映するメニューシステムを作成する方法に関する提案はありますか?
私はいつもテンプレートのメニューをハードコードしていますが、それは簡単で、{%extend%}のコンテキストメニューが可能です。 – jpic
@jplc謝罪、私はあなたのコメントが質問にどのように関係しているか理解できません。これは特にアクセス許可についてです。許可はクロスカッティングであり、URL接頭辞またはそれに類するものにリンクされていません。 – fadedbee
テンプレートのパーミッションをチェックすることができます:https://gist.github.com/25c03f286337c66cc860これはdjangoプロジェクトのかなり標準的なものです。これは私が見たことからdjango permsモジュールのドキュメントです:https:// docs.djangoproject.com/en/1.0/topics/auth/#id6でも、私の主張は、HTMLメニューの「システム」を作るのに費やされた時間が、他のものに費やされる可能性が高いことです。 – jpic