Django 管理应用错误(带属性字段的模型):全局名称 'full_name' 未定义

1 投票
1 回答
1106 浏览
提问于 2025-04-15 22:30

这是我的模型:

class Author(models.Model):

    first_name = models.CharField(max_length=200)
    last_name = models.CharField(max_length=200)
    middle_name = models.CharField(max_length=200, blank=True)

    def __unicode__(self):
        return full_name

    def _get_full_name(self):
        "Returns the person's full name."
        if self.middle_name == '':
            return "%s %s" % (self.first_name, self.last_name)
        else:
            return "%s %s %s" % (self.first_name, self.middle_name, self.last_name)
    full_name = property(_get_full_name)

一切都很好,除了当我进入管理界面时,我看到

模板语法错误在 /bibbase2/admin/bibbase2/author/

渲染时捕获到异常:全局名称 'full_name' 未定义

看起来内置的管理应用和属性字段不兼容。我的代码有什么问题吗?

1 个回答

7
def __unicode__(self):
        return full_name

应该是:

def __unicode__(self):
        return self.full_name

撰写回答