以更具可读性的格式显示电话号码

请告诉我如何正确解决以下问题

数据库中有一个电话号码。在网站上,它以与数据库中记录的相同形式显示

+1234567890

我需要这个数字看起来像这样,在网站页面上,无需在数据库中进行修改

+(123) 456-7890

views.py

def Data(request):
    card = Cards.objects.filter(is_published=True)
        context = {'card': card}      
          return render(request, 'templates/cards.html', context)

models.py

phone = models.CharField(max_length=12, null=True)

卡片.html

{{ card.phone }}

谢谢!



猛跑小猪
浏览 81回答 2
2回答

大话西游666

Django不会自己格式化数字。但是,您可以构建自己的函数来执行此操作。考虑使用(链接)。在 models.py 中为此创建另一个函数:python-phonenumbersimport phonenumbersclass 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 }}注意:不能直接从模板传递参数。因此,该函数必须事先知道您将使用哪种国家/地区格式。

ABOUTYOU

您可以编写此帮助程序函数: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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python