Django站点框架权限
我正在使用sites框架从一个代码库运行多个应用程序。我有3个用户和3个站点。他们可以登录到django管理界面并创建内容,但我希望他们只看到允许他们管理的站点,而不是其他站点。站点框架可以处理这个问题吗?如果没有,有谁能指导我如何实现这一目标 编辑: 我所做的只是一个简单的例子。这是Django站点框架权限,django,django-admin,django-authentication,django-permissions,Django,Django Admin,Django Authentication,Django Permissions,我正在使用sites框架从一个代码库运行多个应用程序。我有3个用户和3个站点。他们可以登录到django管理界面并创建内容,但我希望他们只看到允许他们管理的站点,而不是其他站点。站点框架可以处理这个问题吗?如果没有,有谁能指导我如何实现这一目标 编辑: 我所做的只是一个简单的例子。这是 class Weblog(models.Model): title = models.CharField(max_length=250) slug = models.SlugField(uniqu
class Weblog(models.Model):
title = models.CharField(max_length=250)
slug = models.SlugField(unique=True)
user = models.ForeignKey(User) # this is the user who should own that blog and see nothing else
site = models.ForeignKey(Site)
objects = models.Manager()
on_site = CurrentSiteManager()
def __unicode__(self):
return self.title
class Entry(models.Model):
title = models.CharField(max_length=200)
slug = models.SlugField()
body = models.TextField()
author = models.ForeignKey(User)
weblog = models.ForeignKey(Weblog)
这就是我困惑的地方。我理解网络日志的概念,它包括一个站点和一个用户。但是,如何限制此人只查看和添加/编辑为其创建的自己的博客上的条目
谢谢是的,Django站点框架可以做到这一点。由于我没有太多关于你已经做了什么的信息,我真的不能帮助你,所以请提供更多的细节 也检查一下 编辑好的,我现在明白了,您的问题是限制用户仅查看和编辑其专用站点的内容。这有点复杂 这取决于您是使用管理界面还是自定义视图来处理此视图和编辑。如果您使用自定义的查询集,可以很容易地更改所使用的查询集,但我认为您可以使用管理界面 在这种情况下,也许用CurrentSiteManager()覆盖默认管理器(对象)可以完成这项工作。但是
- 它可能有副作用,不建议覆盖默认管理器,您需要测试它(第一个副作用是:您不会有所有站点上所有编辑的列表)
- 您必须确保用户A不能登录站点B管理界面
我希望这能有所帮助。Django站点权限应用程序将完全做到: 如果它满足您的需要,您可以将其集成到项目中,或者检查源代码以了解如何实现站点范围的权限
(免责声明:我是django site permissions应用程序的开发人员)我为您编辑了该应用程序,可能会有所帮助。这是我用来构建其他东西的一个小例子,但同样的原则也适用。希望有帮助