Django:如何授予 user/group 在指定时间段内查看模型实例的权限

Django : how to give user/group permission to view model instances for a specified period of time

我是 Django 的新手,无法通过阅读文档或查看现有问题来弄清楚。我查看了 Django 权限和身份验证,但找不到解决方案。

假设我有一个详细视图,其中列出了名为 Item 的模型的所有实例。对于每个 Item,我想控制哪些 User 可以查看它,以及多长时间。换句话说,对于每个有权访问 ItemUser,我希望 right/permission 能够将其查看到 在指定的时间段后过期。在那段时间之后,Item 将从列表中消失并且 User 无法访问 url 详细说明 项目.

实现的逻辑非常简单,我知道,但是 "per user / per object" 部分让我感到困惑。非常感谢您的帮助!

有关 UserItemExpiryDate 的信息必须存储在单独的 table(模型)中。我建议在 Django 中使用您的编码。

有几种情况需要考虑: 1) 创建了一个新用户,he/she 应该可以访问项目。 在这种情况下,您使用新的 User<>Item 组合(作为键)和到期日期将条目添加到 UserItemExpiry。然后,对于已登录的用户,您可以在未来的 UserItemExpiry 中从具有 User<>Item 的 Items 中查找项目。 2) 创建了一个新项目,并且必须将其添加到现有用户。 在这种情况下,您将条目添加到 UserItemExpiry,其中包含所有用户 <> 新项目组合(作为键)和到期日期。 "selecting" 有效项目的逻辑与第 1 点相同。

祝你好运, 拉德克·斯瓦克