在Django app的模型中使用__unicode __()时,TypeError具有字符串格式

时间:2015-05-05 04:25:48

标签: python django unicode models

我正在研究创建Django项目和应用程序的第二篇教程。我完成的第一个教程是在djangoproject.com上,我创建了流行的“民意调查”应用程序。第一个教程指定“向模型中添加__str__()方法很重要”,但它也声明“在Python 2上,您应该定义返回unicode值的__unicode__()方法”。我正在运行Python 2.7.9,并且我在第一个教程中成功使用了__unicode__()。我在目前正在进行的第二个教程中遇到字符串格式化问题,这是在effectivedjango.com上。

以下是第一个教程的用法:

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    def __unicode__(self):
        return u'%s' % self.question_text

以下是我在第二个教程中尝试失败的原因:

class Contact(models.Model):
    first_name = models.CharField(max_length=255)
    last_name = models.CharField(max_length=255)
    email = models.EmailField()
    def __unicode__(self):
        return u'%s %s' % (self.first_name, self.last_name)

我还尝试了return u'%s' + ' ' + '%s' % (self.first_name, self.last_name)return u'%s' + u' ' + u'%s' % (self.first_name, self.last_name)

当我尝试使用上述任何尝试在我的数据库中创建Question对象时,我不断获得TypeError: not all arguments converted during string formatting。我在字符串格式化方面做错了什么?我是Python的新手,也是编码时期(如果你不知道的话),所以在给出任何答案时请“慢慢地,清楚地说话”和“轻松对待我”。谢谢!

0 个答案:

没有答案