2014-02-18 14 views
1

我需要這個幫助。在我的應用程序中,用戶與項目連接。比方說,如果在file模型中有created_by字段,那麼我希望只爲用戶啓用文件下載等於request.user用Django提供用戶限制的文件

這怎麼可能。有沒有任何通用的觀點或什麼?

回答

1

向模型中添加一個可以在視圖中使用的方法。事情是這樣的:

class File: 
    created_by = models.ForeignKey(User) 
    # NOTE other fields go here... 

    def is_downloadable_by_user(self, request): 
     return self.created_by == request.user 

然後在您的視圖,你可以做這樣的事情:

# NOTE fix import based on project configuration 
import File 

@login_required 
def my_view(request): 
    # NOTE get file instance however you want 
    file = File(id=1) 
    if file.is_downloadable_by_user(): 
     # DO SOMETHING 

一些調整,我想這個做法應該爲你工作。 @login_requireddefault Django decorator