1. 程式人生 > >TypeError at /goods/ __str__ returned non-string (type NoneType)

TypeError at /goods/ __str__ returned non-string (type NoneType)

今天在學習Django專案時,使用Djangorestframework出現了以下錯誤: 在這裡插入圖片描述 在這裡插入圖片描述

問題原因

由於user的model的name引數可以為空導致的

class UserProfile(AbstractUser):
    """
    使用者
    """
    name = models.CharField(max_length=30, null=True, blank=True, verbose_name="姓名")
    
    class Meta:
        verbose_name = "使用者"
        verbose_name_plural = "使用者"
#複數時 def __str__(self): return self.name

解決方式

  1. 我出現這個錯誤的時候登入了xadmin的管理員賬號,只要把賬戶登出就能快速解決。
  2. 為防止以後出現錯誤,最佳解決方式是直接修改__str__的返回值。
    def __str__(self):
        if self.name:
            return self.name
        else:
            return self.username  # 父類AbstractUser原本的屬性