为什么我在我的代码中得到“NoneType”对象没有属性“days_count”这个错误

问题描述

我想要多个 days_count * room_service 但在多次之后我看到这个不合适的输出。请看图片,其中 Room_Cost 是 800 天,000 是什么解决方案,请帮助我..

class Patientdischarge(models.Model):
assign_doctor = models.ForeignKey(Doctor,on_delete=models.CASCADE,null=True)
appointment = models.ForeignKey(Appointment,on_delete=models.CASCADE)
release_date = models.DateField(auto_Now_add=False,null=True)
medicine_cost = models.IntegerField(null=True,blank=True)
other_charge = models.IntegerField(null=True,blank=True)

def __str__(self):
    return self.appointment.patient.name if all([self.appointment,self.appointment.patient,self.appointment.patient.name]) else 0

def days_count(self):
    return self.release_date - self.appointment.entry_date if all([self.appointment,self.appointment.entry_date]) else 0

def room_bill(self):
    return self.days_count() * self.appointment.room_service if all([self.appointment,self.appointment.room_service])  else 0

enter image description here

解决方法

当你从另一天中减去一天时,你会得到 timedelta,但你需要几天。修改你的天数

def days_count(self):
    return (self.release_date - self.appointment.entry_date).days if all([self.appointment,self.appointment.entry_date]) else 0