Как получить доступ к атрибуту свойства модели Django через фильтр QuerySet в Django Views?
У меня есть модель:
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
Now, I want to filter data of IpdReport
to in a views
function to display a table based on the property
attribute of the Patient
model, that is, 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})
The error it threw: Related Field got invalid lookup: patient_number
Каковы мои возможности для достижения этого?