您好,我使用@login_required 来限制对某些为用户存储书签的页面的访问,但在某些情况下,我希望用户仅访问他的书签,并且如果他尝试输入编辑属于另一个用户的书签的 URL,则必须停止访问. 我怎样才能做到这一点?
问问题
73 次
1 回答
3
@login_required
可以帮助您确保用户已登录以访问视图。
访问视图后,您可以检查以确保允许用户访问书签,并且仅获取允许他们访问的书签
例如,如果您的网址看起来像
/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 回答