簡體   English   中英

為什么我在 /admin/main/consultation/'NoneType' object 沒有屬性 'lastname' 處出現 AttributeError 錯誤

[英]why am i getting error of AttributeError at /admin/main/consultation/ 'NoneType' object has no attribute 'lastname'

在我的管理頁面中,當我單擊咨詢時出現此錯誤

#model.py

class doctor(models.Model):

    user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
    
    is_patient = models.BooleanField(default=False)
    is_doctor = models.BooleanField(default=True)

    firstname = models.CharField(max_length = 50)
    lastname = models.CharField(max_length = 50,default='')
    dob = models.DateField()
    address = models.CharField(max_length = 100)
    countrycode=models.CharField(max_length=5)
    mobile_no = models.CharField(max_length = 15)
    gender = models.CharField(max_length = 10)
    registration_no = models.CharField(max_length = 20)
    specialization = models.CharField(max_length = 30)
    rating = models.IntegerField(default=0)
    qualification = models.CharField(max_length=100,default='')
    year_of_registration = models.CharField(max_length=50,default='')
    medical_experience = models.CharField(max_length=50,default='')
    medical_council=models.CharField(max_length=80,default='')
    charges = models.IntegerField(default=0)
    profilephoto = models.ImageField(null=True,blank=True,upload_to="dprofile/")

    def __str__(self):
        return "Dr. " + self.firstname +" "+ self.lastname

class consultation(models.Model):

    patient = models.ForeignKey(patient ,null=True, on_delete=models.SET_NULL)
    doctor = models.ForeignKey(doctor ,null=True, on_delete=models.SET_NULL)
    diseaseinfo = models.OneToOneField(diseaseinfo, null=True, on_delete=models.SET_NULL)
    consultation_date = models.DateField()
    status = models.CharField(max_length = 20)

    def __str__(self):
        return self.patient.firstname + " "+self.doctor.lastname + '- Dr.' +self.doctor.firstname + ' ' +self.doctor.lastname 

您的consultation有兩個可為的字段patientdoctor 這意味着self.patikentself.doctor本身不是patientdoctor object,但也可以是None

因此,您應該涵蓋這些字段為None的情況:

class consultation(models.Model):
    patient = models.ForeignKey(patient ,null=True, on_delete=models.SET_NULL)
    doctor = models.ForeignKey(doctor ,null=True, on_delete=models.SET_NULL)
    diseaseinfo = models.OneToOneField(diseaseinfo, null=True, on_delete=models.SET_NULL)
    consultation_date = models.DateField()
    status = models.CharField(max_length = 20)

    def __str__(self):
        names = []
        if self.patient is not None:
            names.append(f'{self.patient.firstname} {self.patient.lastname}')
        if self.doctor is not None:
            names.append(f'Dr. {self.doctor.firstname} {self.doctor.lastname}')
        return ' - '.join(names)

然而,看起來很奇怪, patientdoctor首先可以是NULL 這意味着咨詢可以沒有病人和/或醫生?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM