2014-02-18 15 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