繁体   English   中英

__str__ 在 Django 管理菜单中尝试保存时返回非字符串(类型 NoneType)错误

[英]__str__ returned non-string (type NoneType) error when trying to save in Django admin menu

我为我的项目创建了一个自定义用户 model。 我正在使用 python-social-auth 登录用户。登录并将用户数据获取到数据库工作正常,但是当我 go 到管理面板手动更改某些内容时,我收到此错误。 即使我没有更改任何内容,只需单击保存,我也会得到相同的结果。

为什么会这样?

模型.py

from django.db import models
from django.conf import settings

from django.contrib.auth.models import AbstractUser

from .managers import CustomUserManager


# Create your models here.

class CustomUser(AbstractUser):
    username = models.CharField(max_length=32, blank=True, null=True)

    name = models.CharField(max_length=200, unique=True)

    steam_id = models.CharField(max_length=17, unique=True, blank=True, null=True, db_column='steam_id')
    player = models.TextField(null=True)
    user_coins = models.FloatField(default=0.00)

    is_active = models.BooleanField(default=True, db_column='status')
    is_staff = models.BooleanField(default=False, db_column='isstaff')
    is_superuser = models.BooleanField(default=False, db_column='issuperuser')

    USERNAME_FIELD = "name"
    REQUIRED_FIELDS = []

    objects = CustomUserManager()

    def has_perm(self, perm, obj=None):
        return self.is_superuser

    def has_module_perms(self, app_label):
        return self.is_superuser

错误

追溯

这是因为您没有在 CustomUser model 上定义__str__()方法,在您使用 Customuser model 的情况下,返回 self.username

为清楚起见,在任何 model 上使用 django-admin __str__()方法时,IMO 都是强制性的

在这里阅读更多:https://docs.djangoproject.com/en/4.0/ref/models/instances/#str

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM