2 回答
TA贡献1817条经验 获得超14个赞
Django不会自己格式化数字。但是,您可以构建自己的函数来执行此操作。考虑使用(链接)。在 models.py 中为此创建另一个函数:python-phonenumbers
import phonenumbers
class Cards:
phone = models.CharField(max_length=12, null=True)
.....
def formatted_phone_number(self, country=None):
rtval = phonenumbers.parse(self.phone, country)
return rtval
然后在您的:template
{{ card.formatted_phone_number }}
注意:不能直接从模板传递参数。因此,该函数必须事先知道您将使用哪种国家/地区格式。
TA贡献1812条经验 获得超5个赞
您可以编写此帮助程序函数:
def insert_str(string, str_to_insert, index):
return string[:index] + str_to_insert + string[index:]
,然后使用它来在需要时插入字符。如果括号的位置是固定的(每个电话号码都相同,如您提供的示例所示),那么您可以简单地执行以下操作:
phone = insert_str(phone, '(', 1)
phone = insert_str(phone, '(', 5) # there's already an extra '('
phone = insert_str(phone, ' ', 6)
phone = insert_str(phone, '-', 10)
添加回答
举报