我正在使用django v1.8。

我扩展了现有的用户模型。

models.py

class Institution(models.Model):
    user =  models.OneToOneField(User, on_delete=models.CASCADE)
    department = models.CharField(max_length=100)

class Demographic(models.Model):
    patient_id = models.IntegerField(unique= True ,primary_key=True)
    pub_date = models.DateTimeField(auto_now=True)
    author = models.ForeignKey(User)
    history = HistoricalRecords()

    def __str__(self):
        return str(self.patient_id)


我有两个用户doctornurse属于同一科室,我希望他们两个都可以访问相同的患者。

在模板中,我使用搜索引擎搜索患者。

views.py中,我有以下过滤器:

patient = Demographic.objects.filter(patient_id__icontains=id)


但是这2个用户只能在其部门的患者之间进行搜索。

如何在过滤器中实现这一目标?我应该包含什么参数?

最佳答案

用户插入患者作为作者时,用户属于该部门,则该患者属于该部门。


因此,让我们首先获取给定departmentuser

user = request.user # the doctor, the nurse etc
department = Institution.objects.get(user=user).department


现在,您要所有患者(Demographic个实例),其中author.institution.department = department

patients = Demographic.objects.filter(author__institution__department=department)

关于python - Django:如何从一个部门筛选患者?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37679702/

10-12 20:10