我有以下类:访问__unicode __()的正确方法是什么?
class Whuffie(models.Model):
"""Holds the amount of whuffie an engineer has earned in each project"""
engineer = models.ForeignKey(User)
project = models.ForeignKey(Project, related_name="related_project")
whuffie = models.IntegerField(blank=False, null=False
experience = models.IntegerField(blank=False, null=False)
mana = models.IntegerField(blank=False, null=False)
def __unicode__(self):
return u"%s (%s)" % (self.engineer.__str__() + self.project.__str__())
我使用STR()正确的Unicode()?
并在我的测试中,我期待看看该记录是否已正确创建,我仍然可以用这种方式调用str(),即使它应该是一种神奇的方法吗?
def setUp(self):
"""Set up the shared test data."""
self.w = Whuffie.objects.get(pk=1)
def testWhuffieNameIsProjectAndEngineer(self):
"""
Tests that the name of the individual whuffie line is "Engineer (Project Name)".
"""
self.assertTrue(self.w != None)
self.assertEqual(self.w.__str__(), "Engineer (Test Project)")
其他地方在Django STR()每当你引用对象实例本身,所以我期待能够测试像这样被称为:
self.assertEqual(self.w, "Engineer (Test Project)")
好点,我已经修改了我的代码。 我试过调用str()&unicode(),我得到错误'AttributeError:'Whuffie'对象没有属性'str'' – 2011-04-06 13:02:16
@Stuart str和unicode是内置的Python函数。您试图将它们用作Django Model方法,但它们不是。参考资料:http://docs.python.org/library/functions.html#str,http://docs.python.org/library/functions.html#unicode – 2011-04-06 17:31:48
我现在明白了,谢谢Ignacio,Thierry – 2011-04-06 18:46:01