在django中仅显示模型的更改列表中的一些对象

时间:2017-10-17 18:50:50

标签: django foreign-keys django-admin changelist django-guardian

我正在为多所大学创建一个Django应用程序。 这是我使用过的Model类。

class Institute(models.Model):
    name=models.CharField(max_length=200)
    def __str__(self):
        return self.name

class Applicant(models.Model):
    name = models.CharField(max_length=200)
    institute=models.ForeignKey(Institute,on_delete=models.CASCADE)
    def __str__(self):
         return self.name

我为每个机构创建了一个员工用户,但申请人的更改列表也显示了不属于同一机构的申请人。我想修改管理页面更改列表,以便它只列出属于该特定机构的申请人。目前,我的申请人页面更改列表对于我必须从中移除一些申请人的每个机构都是这样的。

当前更改列表

Current change list

1 个答案:

答案 0 :(得分:0)

听起来你需要支持多租户。换句话说,有些" admin"类型用户将"属于"到一个学院,因此,当他们登录时,他们应该只看到他们学​​院的申请人。

不幸的是,这可能是一个难以解决的问题。如果您使用postgres作为数据库,Django Tenant Schemas非常酷。但是,至少根据我的经验,我无法让用户看到所有对象(不确定是否需要)。

如果这不符合您的需求,当然其他软件包试图以不同的方式解决问题,谷歌搜索应该提出这些问题。

如果这些套餐都不符合您的需求,您可以使用Django Sites framework和自定义用户推出自己的多租户。