【发布时间】:2015-08-22 22:48:34
【问题描述】:
我正在使用User Authentication 构建一个简单的应用程序。
我的应用有 3 个模型:
- 用户:标准的 Django 用户模型
- 位置:办公室模型(地址、站点名称等)
- 员工:员工模型(姓名、电子邮件等)
我还有一系列允许用户登录、创建和编辑位置/站点等的视图。
我想知道,将模型实例的编辑限制为用户创建的实例的最佳做法是什么?例如。在没有修改的情况下,两个用户可以创建数据并且都可以编辑其他用户。我如何将其限制为编辑自己的?
我知道长格式方法是在每个模型上放置一个ForeignKey(User) 以使用queryset 限制视图,但这似乎冗长且繁琐。有没有我缺少的 Django 技巧?也许是装饰师?
最佳做法是什么?
【问题讨论】:
-
如果用户只编辑他们自己的对象,IanAuld 的答案就是要走的路。否则,您可能拥有一组可以编辑所有对象的用户,您可以通过将这些用户放在一个组中来控制这一点。
标签: python django django-authentication django-permissions