我只是有一个django医疗网站,用户在那里有他们的医疗记录,登录时可以查看。 我已经实现了基于登录用户的过滤,我想要的是另一个用户(医生)根据用户(他选择的患者)查看此记录。目前,医生可以查看记录是否为一个(使用get_object_或_404),但我希望循环多个记录
模特们
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})
在上面的视图中,我可以看到单个记录的患者记录,但是medrecs(医疗记录无法根据用户(患者)对其进行筛选),它只给了我一个带有代码的页面(模板页面未执行)。medrecs.objects.filter(用户=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')
请寻求帮助。谢谢
如果我理解正确,问题可能是您使用了错误的字段进行筛选。为什么要将用户作为外键?。如果你要把医疗记录保存给医生和病人,也许你应该这样过滤
相关问题 更多 >
编程相关推荐