問題タブ [django-guardian]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - Django および django-guardian オブジェクト権限を使用したオブジェクトごとのグループ
私は現在、会社に所属する従業員がいる構造を作成しています。この会社内で、いくつかのグループを作成できる必要があります。よろしければランク付けします。低いランクには少ないアクセス許可を割り当て、高いランクには多くのアクセス許可を割り当てることができます。
オブジェクト レベルのアクセス許可を取得したいのですが、django-guardian プロジェクトが必要なものを正確に提供してくれることに気付きました。これはネイティブの User および Group オブジェクトで動作するため、会社のオブジェクトにネイティブのグループ オブジェクトを実装する方法を見つけようとしています。
私が直面している問題は、グループ内の名前が一意であることです。そのため、2 社が同じグループを追加すると、エラーが発生します。
ある意味で機能する実装を見つけましたが、私にはかなり「ハッキー」に思えます。私の会社では、Group を参照するグループ変数を宣言しました。
CompanyRole は基本的に、グループ名と会社およびグループへの参照を格納します。
新しい「企業グループ」を追加する便利な方法でカスタムマネージャーを作成しました
ここが、私が特に違和感を感じない部分です。Group モデルの一意の名前に関する問題を変更するために、会社 ID、ハッシュ記号、および実際のグループ名を組み合わせて衝突を回避しました。
私の質問は次のとおりです。私のシナリオにはより良い方法がありますか、何か不足していますか、それとも必要なことを達成するための良い方法ですか?
django - ネストされたルートに対する Django REST 権限
ネストされたルーター拡張機能を備えた Django REST フレームワークを使用しています。私のルートの 1 つは次のようになります。 companies/$company/locations/$location
where$company
と$location
are slug 変数。
ユーザーがこの URL に POST できるようにしたい:companies/$company/locations/
新しい場所を追加する。POST を実行しているユーザーが、POST 先の会社の修正権限を持っていることを確認したいと考えています。現在django-guardian
、オブジェクト レベルのアクセス許可に使用しています。POST メッセージには、新しい場所の名前のみが含まれ、URL から推測できる会社名は含まれません。この場合、権限を正しく適用するのに苦労しています。ビューセットのメソッドからcompany
新しいオブジェクトのフィールドを設定していましたが、パーミッション チェックを適用するには遅すぎます。Location
pre_save
これを強制する最良の方法は何ですか?
ユーザーが POST に会社を含めている場合は、ビューセットに以下を追加することで会社を検証できます。
django - django でのシステム レベルとオブジェクト レベルのアクセス許可の混在
RESTでdjango 1.6を使用しています。オブジェクト レベルとシステム レベルのアクセス許可をアプリに取り込もうとしています。少し読んだ後、それdjango-gurdian
が最善の方法であることがわかりました(他のすべてのアプリとうまく機能するため).
システム レベルのアクセス許可とオブジェクト レベルのアクセス許可が一緒に処理される方法については、少し混乱しています。例えば、
私は、まだアイテム インスタンスを持っていないため (また、システム権限を持っているべきではない)、permissions.py
テスト方法について完全に確信が持てないことに気付いたときに、私のコードを書き始めました。item_create
違い、および/または両方を管理する方法、および2つがどのように連携するかについての言葉に感謝します.
python - Django フォームと Django-guardian: UserObjectPermissions のフィルタリングされたリストを表示する
管理者がdjango-guardianパーミッションを人に割り当て/削除し、そのオブジェクトに利用可能なパーミッションに基づいて、それらがプロジェクトオブジェクトにどのように関係するかを知りたいです。
画面は次のようになります。
プロジェクトは、ビューが表示できる URL で提供されます。次のように、プロジェクトを入力として受け取るカスタム フォームを作成しました。
これにより、現在 NameError が返されます。これは、メソッドself
の外で使用しているためだと思います。__init__
私は何を間違っていますか?
django - Django管理モデルadd_view:「保存して別の追加」ボタンを削除するには?
次のコードを実装することで、「保存して別のものを追加」ボタンと「保存して編集を続行」ボタンを削除できました。
これは、change_view を使用しているときにはうまく機能しますが、モデルの新しいインスタンスを追加すると、ボタンが再び表示されます。私は次のことを試しました:
しかし、それは私に奇妙な MissingAtrribute エラーを与えます - ここにトレースバックがあります:
私はdjango-guardianを使用していますが、これがどういうわけか私の問題を引き起こしているのでしょうか? 新しいモデル インスタンスを追加するときに、テンプレートの submit_line 部分からこれらの迷惑なボタンを取り除く方法を知っている人はいますか?