djangoで作業しています。Pythonの単純なfirst_name last_nameが空白の場合はlast_initial
ユーザー名が省略可能なプロファイルモデル用の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 ==失敗しました。
希望の出力を生成するための1行のPythonイディオムはありますか?私はGoogleを検索し、半ダースの検索条件のためにスタックオーバーフローし、ガチョウの卵を出しました。あなたは具体的には、1つのために求めてきましたので、ワンライナーとして書かれ
return self.user.first_name + (' %s.' % self.user.last_name[0] if self.user.last_name else '')
以上:どの程度
簡単な方法:多くの行で(私は3つ行っています)し、 'return format_name(self.user.first_name、self。)を実行する' format_name(fname、lname) 'ヘルパ関数を定義します。あなたの '__unicode__'に' user.last_name) 'を追加します。これは、(モデル内で)重要な箇所で、起動するために読むことができる行です。 – AdamKG
これはおそらく最良の答えです。私はそれを受け入れることができるように、回答フォームに入れたいですか? – Ted