gpt4 book ai didi

python - Django:当我尝试删除用户时出现 AttributeError

转载 作者:太空宇宙 更新时间:2023-11-04 09:09:40 25 4
gpt4 key购买 nike

当我尝试从管理页面 (Django 1.5) 中删除用户时出现了一个有趣的错误:

AttributeError at/admin/teaching/student/5/delete/

“tuple”对象没有属性“replace”

接着是很长的我不明白的Traceback,最后是提示

line 43 in .../site-packages/django/utils/html.py in escape:
return mark_safe(force_text(text).replace('&', '&amp;').replace('<', '&lt;').replace('>', '&gt;').replace('"', '&quot;').replace("'", '&#39;'))

text 只是字符串:格式错误:强制转换为 Unicode:需要字符串或缓冲区,找到元组。所以 force_text 返回一个元组?这和我的模型有什么关系?我很困惑。

我的用户是学生,每个 Student 模型都有一个 OneToOneField 和 User 模型,所以我猜相应的 Student 对象也必须删除。我可以毫无问题地从 shell 中删除用户(并且学生对象也消失了)。

编辑:这是 Student 模型:

class Student(models.Model):
user = models.OneToOneField(User)
start_year = models.IntegerField()
name = models.CharField(max_length=100)
token = models.CharField(max_length=20, blank=True, null=True)

def __unicode__(self):
return self.name,

def user_email(self):
return self.user.email

最佳答案

发现了!如果不是拼写错误,您的 __unicode__ 返回子句中的尾随逗号会使其返回一个 tuple,所以这就是您遇到的错误。

def __unicode__(self):
# note the tralining comma
#return self.name,
#should be like this (no comma)
return self.name

希望这能奏效!

关于python - Django:当我尝试删除用户时出现 AttributeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16776888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com