我正在研究创建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的新手,也是编码时期(如果你不知道的话),所以在给出任何答案时请“慢慢地,清楚地说话”和“轻松对待我”。谢谢!