我有以下類:訪問__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