为了账号安全,请及时绑定邮箱和手机立即绑定

/admin/customer/customerregistration/add/

/admin/customer/customerregistration/add/

扬帆大鱼 2023-03-01 15:24:15
我创建了一个模型 CustomerRegistration 并在其中添加了字段,我与用户模型建立了关系并将其注册到 admin.py 文件中。当我转到 Django 默认管理面板并注册客户时,它给出了一个错误。'''TypeError at /admin/customer/customerregistration/add/ str返回了非字符串(用户类型)'''。我不知道出了什么问题。这是我的模型.pyfrom django.contrib.auth.models import AbstractBaseUser, BaseUserManager, PermissionsMixinfrom django.db import modelsfrom django.utils import timezone# Create Your Models Here.class UserManager(BaseUserManager):    def _create_user(self, username, password, is_staff, is_superuser, **extra_fields):        if not username:            raise ValueError('Users must have an username address')        now = timezone.now()        username = self.model.normalize_username(username)         user = self.model(            username=username,            is_staff=is_staff,            is_active=True,            is_superuser=is_superuser,            last_login=now,            date_joined=now,            **extra_fields        )        user.set_password(password)        user.save(using=self._db)        return user    def create_user(self, username=None, password=None, **extra_fields):        return self._create_user( username, password, False, False, **extra_fields)    def create_superuser(self, username, password, **extra_fields):        user = self._create_user(username, password, True, True, **extra_fields)        user.save(using=self._db)        return userclass User(AbstractBaseUser, PermissionsMixin):    username = models.CharField(max_length=254,unique=True)    name = models.CharField(max_length=254, null=True)    email = models.EmailField(max_length=254, null=True)     is_staff = models.BooleanField(default=False)    is_superuser = models.BooleanField(default=False)    is_active = models.BooleanField(default=True)    is_service = models.BooleanField(default=False)    is_customer = models.BooleanField(default=False)    is_admin = models.BooleanField(default=False)
查看完整描述

2 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

在 CustomerRegistration 下稍作更改即可修复此错误,将 self.name 类型转换

def __str__(self): 
   return str(self.name.username)


查看完整回答
反对 回复 2023-03-01
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

我必须对 CustomerRegistration 模型进行更改。它修复了错误。

def __str__(self): 
   return self.name.username


查看完整回答
反对 回复 2023-03-01
  • 2 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信