首页 > 解决方案 > 如何通过 Django 视图中的 QuerySet 过滤器访问 Django 模型的属性属性?

问题描述

我有一个模型:

class IpdReport(models.Model):
    patient=models.ForeignKey(Patient, on_delete=CASCADE)
    package=models.ForeignKey(Package, on_delete=CASCADE)

Patient模型如下所示:

class Patient(models.Model):
    name=models.CharField(max_length=100)
    mr_uid=models.CharField(max_length=9) #A gender field needs to be added here later

    @property
    def patient_number(self):
        if self.pk:
            return "{}{:04d}".format('PN/D/', self.pk)
        else:
            return ""

    def __str__(self):
        return self.name+"-"+self.patient_number

现在,我想IpdReport在一个views函数中过滤 to 的数据,以根据模型的property属性显示一个表Patient,即patient_number.

这是我尝试过的,但没有奏效:

def sort_by_pt(request):
    if request.method=='POST':
        pn=request.POST.get('enter_patient_number')
        report=IpdReport.objects.filter(patient__patient_number=pn)
        total1=report.aggregate(Sum('realization__amount_received'))
        total2=report.aggregate(Sum('realization__deficit_or_surplus_amount'))
        context={'report': report, 'total1':total1, 'total2':total2}
        return render(request, 'account/ipdreport.html', context)
    else:
        sort=EnterPatientNumber()
        return render(request, 'account/sort.html', {'sort':sort})

它抛出的错误:相关字段查找无效:​​患者编号

我有什么选择来实现它?

标签: pythondjangodjango-modelsdjango-views

解决方案


推荐阅读