Skip to main content
 首页 » 编程设计

Python 简单 first_name last_initial when last_name 可以为空

2025年05月04日18shanyou

在 django 中工作。

为配置文件模型创建 unicode 输出,其中用户姓氏是可选的。

Desired: 
  John D. if last name 
  John if not last name 
 
Acceptable (though not ideal): 
  John . if not last name  

当前代码:

def __unicode__(self): 
    return "%s %s." % (self.user.first_name, self.user.last_name[0]) 

这通常可以获得可接受的结果,但当 last_name == ""时失败。

是否有单行 python 习惯用法来生成我想要的输出?我在 google 和 stack overflow 中搜索了六个搜索词,结果是鹅蛋。

请您参考如下方法:

简单的出路:

def format_name(fname, lname): 
    if lname: 
        return "{0} {1}.".format(fname, lname) 
    return fname 

然后只需在 __unicode__ 中返回 format_name(self.user.first_name, self.user.last_name)。这是重要的一行(在您的模型中),并且启动时可读。