【问题标题】:Django : how to give user/group permission to view model instances for a specified period of timeDjango:如何授予用户/组在指定时间段内查看模型实例的权限
【发布时间】:2018-09-13 05:50:20
【问题描述】:

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

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

我知道,实现的逻辑非常简单,但是“每个用户/每个对象”部分让我感到困惑。非常感谢您的帮助!

【问题讨论】:

    标签: python django django-admin django-authentication django-permissions


    【解决方案1】:

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

    有几个场景需要考虑: 1)创建了一个新用户,他/她应该可以访问项目。 在这种情况下,您使用新的 UserItem 组合(作为键)和到期日期向 UserItemExpiry 添加条目。然后,对于已登录的用户,您从 Items 中查找将来在 UserItemExpiry 中具有 UserItem 的项目。 2)创建了一个新项目,并且必须将其添加到现有用户。 在这种情况下,您向 UserItemExpiry 添加条目,其中包含 ALL users new Item 组合(作为键)和到期日期。并且“选择”有效项目的逻辑与第 1 点相同。

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

    【讨论】:

      猜你喜欢
      • 2016-08-04
      • 2020-10-09
      • 2021-10-21
      • 1970-01-01
      • 2017-04-22
      • 2012-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多