当我尝试从管理页面(Django 1.5)中删除用户时,我遇到了一个有趣的错误:
AttributeError at /admin/teaching/student/5/delete/
'tuple' object has no attribute 'replace'
后面是长长的 Traceback 我不明白,最后以一个抱怨结束
line 43 in .../site-packages/django/utils/html.py in escape:
return mark_safe(force_text(text).replace('&', '&').replace('<', '<').replace('>', '>').replace('"', '"').replace("'", '''))
但text
只是字符串:Error in formatting: coercing to Unicode: need string or buffer, tuple found
. 那么force_text
返回一个元组吗?这跟我的模型有什么关系?我很困惑。
我的用户是学生,每个 Student 模型都有一个带有 User 模型的 OneToOneField,所以我猜相应的 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