常見於 Django 表單欄位(Field、Widget)初始化邏輯,決定標籤後綴字串(預設為冒號 :)。
| 片段 | 含義 |
|---|---|
label_suffix | 呼叫端傳入的自訂後綴,可能為 None、""、"*" 等。 |
label_suffix is not None | 判斷呼叫端是否**顯式提供**值(含空字串)。 |
_(':') | Django 國際化函式 ugettext_lazy 別名,標記字串 ":" 可被翻譯提取。執行時返回當前語系對應譯文(預設仍為 ":")。 |
a if cond else b | Python 三元運算子:條件為真取 a,否則取 b。 |
# 等價展開
if label_suffix is not None:
self.label_suffix = label_suffix # 使用呼叫端指定值(含空字串)
else:
self.label_suffix = _(':') # 回退至可翻譯的預設冒號
makemessages 提取 ":" 並提供譯文(如日文 「:」、法文 " :")。ugettext_lazy 返回 Promise 物件,僅在真正渲染模板時求值,避免啟動期載入翻譯目錄。# 允許呼叫端以 False/"" 關閉後綴
self.label_suffix = label_suffix if label_suffix is not None else _(':')
# 僅當 label_suffix 為真值時使用,否則預設
self.label_suffix = label_suffix or _(':') # 注意:"" 會落入預設