А тут мы зачет __str__() вызываем? Мы мейджик-методы вообще не должны вызывать явно.