0

誰かが私を助けてくれることを願っています。

Djangoとおいしいパイのスタックがあります(ユーザーの認証と承認にはapikeyを使用しています)。イムがやろうとしていることを説明させてください。

データにしかアクセスできないユーザーが何人かいるので、次のように、RESTサービスを介してユーザーがモデルrequestofferのすべての行にアクセスするとします。

http://127.0.0.1:8001/api/v1/requestoffer/?format=json&username=door1&api_key=84051c6fd1581ad60ffa96bcf5a50d3fc11ccdd3

しかし、私はそのユーザーがすべてのリクエストオファーにアクセスすることを望んでいません。私は彼が「独占的」なものにアクセスすることを望んでいます。

DjangoまたはTastypieのいずれかでこれを行う方法を知っていますか?

私は自分自身を明確にしましたか?

4

2 に答える 2

0

すべての行が1つの特定のユーザーに属している場合は、それを外部キーとしてrequestofferに追加し、ユーザーがクエリセットをフィルタリングできます。もう1つのアプローチは、Authorizationクラスを拡張し、apply_limitsを実装することです。

class MyAuthorization(DjangoAuthorization):
    def apply_limits(self, request, object_list):
        if request and hasattr(request, 'user'):
            return object_list.filter(requestoffer__user=request.user.id)

        return object_list.none()
于 2013-02-19T22:19:05.590 に答える
0

権限管理を実現する方法はたくさんあります。どちらがあなたのニーズに合うかは完全にあなた次第です。これを実現する1つの方法は、問題のモデルとの「所有権」関係を作成し、そのモデルのマネージャーを作成して、要求に基づいてレコードのみを返すことです。モデルマネージャーに関するドキュメントは非常に単純です(そしてエレガントです)。

レコードの所有権を自動化するには、 Pro Djangoで説明されているようにCurrentUserFieldを作成できますが、それを実装する方法も複数あります。簡単に言えば、試行錯誤で学ぶ必要があります。

于 2013-02-19T22:22:25.213 に答える