用户对特定用户的身份验证

时间:2012-12-03 17:27:52

标签: python django

您好我使用@login_required限制访问某些为用户存储书签的页面,但在某些情况下我希望用户只能访问他的书签,如果他尝试输入编辑属于书签的网址,则必须停止给另一个用户。我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

@login_required可以帮助您确保用户已登录甚至访问该视图。

访问视图后,您可以检查以确保允许用户访问书签,并且仅获取允许其访问的书签

例如,如果您的网址看起来像

/bookmarks/并且对应于函数bookmarks

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

这将确保用户登录以访问该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