1

こんにちは、@login_required を使用して、ユーザーのブックマークを保存するページへのアクセスを制限していますが、場合によっては、ユーザーが自分のブックマークのみにアクセスできるようにする必要があり、別のユーザーに属するブックマークを編集する URL を入力しようとすると停止する必要があります。 . どうやってやるの?

4

1 に答える 1

3

@login_requiredビューにアクセスするためにユーザーがログインしていることを確認するのに役立ちます。

ビューにアクセスしたら、ユーザーがブックマークへのアクセスを許可されていることを確認し、アクセスが許可されているブックマークのみをフェッチすることができます。

たとえば、URLが次のようになっている場合

/bookmarks/と機能に対応しますbookmarks

@loggin_required
def bookmarks():
  # only fetch book makrs for this user
  bookmarks = Bookmarks.objects.filter(user=request.user)

これにより、ユーザーがURLにアクセスするためにログインし、ページを表示しているユーザーに対してのみブックマークが表示されるようになります。一部のユーザーが他のユーザーのブックマークを表示できる場合は、ある種の権限システムを追加できます

このビューにユーザーのすべてのブックマークが表示され、ブックマークなどを編集するためのURLを提供したい場合

bookmarks/{{ bookmark_id }}/editにマップしますedit_bookmark

@login_required
def edit_bookmark(bookmark_id):
   # user is guarenteed to be logged in so request.user is available
   # your permission system will depend on how you authenticate whether a user can edit
   # a bookmark or not
   # CHECK if user has permission to edit bookmark
   pass
于 2012-12-03T17:34:55.153 に答える