Я получил забавную ошибку, когда я пытаюсь удалить пользователя из администратора страниц (Django 1.5):Джанго: AttributeError при попытке удалить пользователя
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
возвращает кортеж? Что это касается моих моделей? Я смущен.
Мои пользователи - студенты, и каждая модель Студента имеет OneToOneField с моделью пользователя, поэтому я думаю, что соответствующий объект Student также должен быть удален. Я могу удалить пользователя из оболочки без каких-либо проблем (и объект Student также исчезнет).
Edit: вот 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
У вас есть какая-либо админ-форма или какая-то переоценка? Это (смешная/боль в ...) ошибка действительно :) –
Ничего особенного, я не думаю. Модель Student имеет метод '__unicode__', который возвращает' self.name' и метод 'user_email', который возвращает' self.user.email' для 'StudentAdmin'' list_display'. Единственное, что, я думаю, могло бы сделать другое - вручную добавить поле «токен» в таблицу базы данных модели Student (но я запустил manage.py syncdb OK). – xnx
Можете ли вы опубликовать модель «Студент», чтобы узнать, есть ли там что-то не так? –