我正在使用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)
我有两个用户
doctor
和nurse
属于同一科室,我希望他们两个都可以访问相同的患者。在模板中,我使用搜索引擎搜索患者。
在
views.py
中,我有以下过滤器:patient = Demographic.objects.filter(patient_id__icontains=id)
但是这2个用户只能在其部门的患者之间进行搜索。
如何在过滤器中实现这一目标?我应该包含什么参数?
最佳答案
用户插入患者作为作者时,用户属于该部门,则该患者属于该部门。
因此,让我们首先获取给定department
的user
:
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/