时间:2010-07-25 22:37:19

标签: python django database-design django-models

2 个答案:

答案 0 :(得分:1)

我通过以下方式解决了这个问题:

首先,我创建了一个CurrentCompanyManager。

class CurrentCompanyManager(models.Manager):
    def __init__(self,field,*args,**kwargs):
        super(CurrentCompanyManager,self).__init__(*args,**kwargs)
        self.__field_name = field

    def on(self,company):
        return self.filter( **{  self.__field_name + '__id__exact':company.id } )

我将管理员添加到我需要的所有模型中。

class Employee(models.Model):
    # some fields and relationships
    objects = CurrentCompanyManager("section__company")

class Accounts(models.Model):
    # some fields and relationships
    objects = CurrentCompanyManager("customer__company")

现在我可以轻松地限制视图中的模型数据。

def magic_view(request):
    Employee.objects.on(request.company).all()

它应该是不言自明的。如果没有,请问我。

答案 1 :(得分:0)