2012-12-03 37 views
1

您好,我使用@login_required來限制訪問存儲用戶書籤的某些頁面,但在某些情況下,我希望用戶只能訪問他的書籤,並且必須停止,如果他嘗試輸入一個url編輯屬於另一個用戶的書籤。我怎樣才能做到這一點?對特定用戶的用戶身份驗證

+0

請發佈所有相關的代碼 – dm03514

回答

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和書標記僅顯示正在查看的用戶頁面。你可以添加某種許可制度的,如果某些用戶可以查看其他用戶的書籤

如果這種觀點是,以示對用戶的所有的書痕,你想提供一個網址,編輯書籤或類似

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 
+0

感謝,但我想阻止用戶編輯其他的用戶的書籤,而不是通常情況下禁用編輯書籤... – Dimitris

+0

@Dimitris發表您的型號代碼,您的看法代碼和你的網址以獲得更多的信息led答案 – dm03514

+0

你的答案幫助我解決了我的問題。我剛剛使用此代碼 如果request.user == login1.username: 和else語句我重定向到主頁面,因爲用戶不能編輯其他用戶的書籤 – Dimitris