【发布时间】:2015-07-14 16:09:50
【问题描述】:
我正在编写关于创建 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 非常陌生,并且在编码期间(以防你看不出来),所以在给出任何答案时请“慢慢说清楚”和“对我放轻松”。谢谢!
【问题讨论】:
-
我有点困惑。您认为 Contact 类有问题,但是当您尝试创建 Question 对象时,它会给您类型错误?另外,您是如何创建问题对象的?
-
我在 Windows 命令提示符中使用 python shell 来创建我的问题和联系人对象。有趣的是,我今天第一次尝试再次创建一个联系人对象,它工作正常。现在我无法复制昨晚一直给我 TypeError 的任何事情。无论如何感谢@Cheng 的帮助,但现在看起来一切正常。
-
很高兴听到它现在可以工作了:D
标签: python django unicode models