使用Django提供用户限制的文件

时间:2014-02-18 21:50:42

标签: django django-views

我需要帮助。在我的应用程序中,用户与项目相关联。假设created_by模型中的file字段等于request.user,我想仅为用户启用文件下载。

这怎么可能。是否存在任何通用视图?

1 个答案:

答案 0 :(得分: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