我是Django的新手,无法通过阅读文档或查看现有问题来弄明白。我查看了Django权限和身份验证,但找不到解决方案。
假设我有一个详细信息视图,其中列出了名为 Item 的模型的所有实例。对于每个项目,我想控制哪些用户可以查看它,以及多长时间。换句话说,对于有权访问项的每个用户,我希望权限/权限在指定的时间段后查看到期时间。在这段时间之后,项目将从列表中消失,用户无法访问详细说明项目的网址。
我知道,实现的逻辑非常简单,但“每用户/每个对象”部分让我感到困惑。非常感谢帮助!
答案 0 :(得分:1)
有关UserItemExpiryDate的信息必须存储在单独的表(Model)中。我建议你在Django中使用你的编码。
有几种情况需要考虑: 1)创建新用户,他/她应该有权访问项目。 在这种情况下,您使用新的用户<>项目组合(作为密钥)和到期日期向UserItemExpiry添加条目。然后,对于登录用户,您将在以后的UserItemExpiry中查找具有User<> Item的项目中的项目。 2)创建一个新项目,并且必须将其添加到现有用户。 在这种情况下,您向所有用户<>添加条目到UserItemExpiry。新物品组合(作为关键)和失效日期。 “选择”有效项目的逻辑与第1点相同。
祝你好运, Radek Szwarc