我正在使用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)
但是这两个用户只能在他们所在部门的患者之间进行搜索。
如何在过滤器中实现此目的?我应该包含哪些参数?
答案 0 :(得分:1)
我认为author
是一种与病人相关的看护人。然后,您可以在用户部门执行filter
:
department = Institution.objects.get(user=request.user).department
demographic = Demographic.objects.filter(patient_id=id).filter(author__institution__department=department)
答案 1 :(得分:1)
当用户将患者作为作者插入时,用户属于某个部门,然后该患者属于该部门。
首先让我们先获得给定department
的{{1}}:
user
现在您希望所有患者(user = request.user # the doctor, the nurse etc
department = Institution.objects.get(user=user).department
个实例)都在Demographic
author.institution.department = department