【发布时间】:2021-03-24 19:57:12
【问题描述】:
我只是有一个 django 医疗网站,用户有他们的医疗记录,并且可以在登录时查看。 我已经实现了基于登录用户的过滤,我想要的是另一个用户(医生)根据用户(他选择的病人)查看这些记录。目前医生可以查看记录是否为一个(使用get_object_or_404,但我想循环遍历许多记录。
models.py
class Medrecs(models.Model):
user = models.ForeignKey(User, null=True, on_delete=models.CASCADE, related_name="meds")
title = models.CharField(max_length=60, null=True)
doctor = models.ForeignKey('Doctors.Doctor', null=True, on_delete=models.PROTECT)
patient = models.ForeignKey(Patient, on_delete=models.CASCADE)
date = models.DateTimeField(auto_now=True, null=True)
meds = models.TextField()
def __str__(self):
return self.title
Views.py
def detail(request, pat_id):
patient = get_object_or_404(Patient, pk=pat_id)
medrecs = Medrecs.objects.all().filter(user=request.user)
return render(request, 'MyDoc/detail_pat.html', {'patient': patient}, {'medrecs': medrecs})
在上面的视图中,我可以看到是单个记录的患者记录,但是医疗记录(医疗记录无法根据用户(患者)过滤它们,它只是给了我带有代码的页面(模板页面unexecuted ).medrecs.objects.filter(user=request.user) 同样的情况下,.get 会带返回的行数和错误multipleobjects。
作为旁注,我能够使用视图过滤用户(个人资料页面)中的这些记录:
def my_profile(request):
if request.user.is_authenticated:
meds = Medrecs.objects.all().filter(user=request.user)
return render(request, 'MyDoc/my_profile.html', {'meds': meds})
else:
return redirect('MyDoc:login_patient')
请寻求帮助。谢谢
【问题讨论】: