/admin/app/doctor/add/_str__处的TypeError返回非字符串(类型为NoneType)



在我的django项目中,我的models.py:

class myCustomUser(AbstractUser):
username = models.CharField(max_length=20, unique="True", blank=False)
password = models.CharField(max_length=200)
isPatient = models.BooleanField(default=False)
isDoctor = models.BooleanField(default=False)
firstName = models.CharField(max_length=200, blank=True, null=True)
lastName = models.CharField(max_length=200, blank=True, null=True)
email = models.EmailField(unique=True)
dateOfBirth = models.CharField(max_length=200, blank=True, null=True)
address = models.CharField(max_length=200, blank=True, null=True)
contactNo = models.IntegerField(null=True, unique=True)
def __str__(self):
return self.firstName

class Doctor(models.Model):
user = models.OneToOneField(myCustomUser, null=True, blank=True, on_delete=models.CASCADE, related_name='doctor_releted_user')
degree = models.CharField(max_length=200, blank=True, null=True)
speciality = models.CharField(max_length=200, blank=True, null=True)
isApproved = models.BooleanField(default=False)
def __str__(self):
return self.user.firstName

class Patient(models.Model):
user = models.OneToOneField(myCustomUser, null=True, blank=True, on_delete=models.CASCADE, related_name='patient_releted_user')
gender = models.CharField(max_length=200, blank=True, null=True)

class Appointment(models.Model):
pname = models.ForeignKey(Patient, on_delete=models.CASCADE, related_name='patient_releted_appointment', null=True, blank=True)
doctor = models.ForeignKey(Doctor, null=True, blank=True, on_delete=models.CASCADE, related_name='doctor_releted_appornment')
date = models.DateTimeField(null=True, blank=True)
isConfiremed = models.BooleanField(default=False)

在第一个migration之后,当我试图从管理面板添加任何doctor对象时,它会显示错误,如:

TypeError at /admin/app/doctor/add/
__str__ returned non-string (type NoneType)

我该怎么修?

myCustomUser上设置blank=True, null=True时,不能保证用户会有名字。

为了更好地了解null和blank参数是如何工作的(以及它们在哪里不同(,请查看另一个问题的答案:https://stackoverflow.com/a/68948701/1720845

最新更新