2013-02-05 69 views
1

我有以下代码:Django管理 - 外键“字段对象”名单

class Actor(models.Model): 
    first_name = models.CharField('First Name', max_length=135) 
    last_name = models.CharField('Last Name', max_length=135) 

    class Meta: 
     db_table = u'actor' 

    def actorname(self): 
     return u'%s %s' %(self.first_name, self.last_name) 

    def __unicode__(self): 
     return str(self.actorname) 

我看不出有什么错我的代码,但在Django管理它显示为。

我在做什么错了?

谢谢。

+0

你不需要在'__unicode__'中将'actorname'变成属性来访问它吗? – bernie

+0

我不这么认为,如果我在'first_name'上试试它,同样的问题会发生。 – moenad

回答

3

记住它是一个函数,所以它应该是:

class Actor(models.Model): 
    first_name = models.CharField('First Name', max_length=135) 
    last_name = models.CharField('Last Name', max_length=135) 

    class Meta: 
     db_table = u'actor' 

    def actorname(self): 
     return u'%s %s' %(self.first_name, self.last_name) 

    def __unicode__(self): 
     return str(self.actorname()) 

此外,你可以这样做:

def __unicode__(self): 
    return u"%s %s" % (self.first_name, self.last_name) 
+0

同样的问题,它没有奏效。但是我注意到,如果我选择“Actor对象”并保存它,我会在列表显示页面上看到< moenad

+0

正如我告诉过你的,即使我写'return str(self.first_name)',也不会改变。甚至认为,在其他模型中,一切工作正常。 – moenad

+0

return u“%s”%self.actorname()? – msc

0

好了,奇怪,但它是因为actorname方法。奇怪但删除后工作。