我想知道django管理页面是否可以用于外部用户。
假设我有这些模型:
class Publisher(models.Model):
admin_user = models.ForeignKey(Admin.User)
..
class Publication(models.Model):
publisher = models.ForeignKey(Publisher)
..
我不确定admin_user是什么 - 也许它可能是管理员用户的电子邮件?
反正。有没有办法允许管理员用户只添加/编辑/删除其发布者与该管理员用户相关联的出版物?
-Thanks! -Chris
答案 0 :(得分:15)
如果您需要在自己的应用程序中使用更细粒度的权限,则应注意Django的管理应用程序通过以下方法支持此功能,这些方法可以在ModelAdmin的子类上重写。请注意,所有这些方法都接收当前的HttpRequest对象作为参数,允许基于特定的经过身份验证的用户进行自定义:
queryset(self, request):
应返回一个QuerySet,以便在管理员的模型对象列表中使用。此QuerySet中不存在的对象将不会显示。has_add_permission(self, request):
如果允许添加对象,则返回True,否则返回False。has_change_permission(self, request, obj=None):
如果允许编辑obj,则返回True,否则返回False。如果obj为None,则应返回True或False以指示是否一般允许编辑此类对象(例如,如果False将被解释为意味着当前用户不允许编辑此类型的任何对象)。 / LI>
has_delete_permission(self, request, obj=None):
如果允许删除obj,则返回True,否则返回False。如果obj为None,则应返回True或False以指示是否一般允许删除此类型的对象(例如,如果False将被解释为意味着当前用户不允许删除此类型的任何对象)。 答案 1 :(得分:0)
答案 2 :(得分:0)
我看到克里斯的答案在提出问题时很有用。
但现在几乎是2016年,我想更容易为最终用户启用Django Admin panel
的限制访问。
Django身份验证系统提供:
组:将标签和权限应用于多个用户的一般方法。
可以通过管理面板或编写代码添加特定权限并将该组应用于用户。
将用户添加到这些特定组后,管理员需要为这些用户启用is_staff
标记。
用户可以在admin中访问受限制的注册模型。 我希望这会有所帮助。