簡體   English   中英

如何更改CharField的顯示方式?

[英]How do I change how a CharField is displayed?

我在models.py文件中定義了一個模型:

class Tutor(models.Model):
    FirstName = models.CharField(max_length=50)
    LastName = models.CharField(max_length=50)
    Email = models.EmailField(max_length=100)
    PhoneNumber = models.CharField(max_length=10)
    RequestedHours = models.DecimalField(max_digits=3, decimal_places=1)

    def __str__(self):
        return str(self.FirstName + " " + self.LastName)

我想創建一個頁面,在易於閱讀的表格中顯示所有這些信息。 我已經設法做到了這一點,但是我總是發現沒有分隔符的10位電話號碼更難以閱讀。 當前,顯示輸出如下所示:

在此處輸入圖片說明

該表的代碼如下所示:

<div class="table-background">
<table class="table table-striped table-bordered table-hover">
    <thead>
    <tr class="bg-info">
        <th colspan="2">Tutor</th>
    </tr>
    </thead>
    <tbody>
    <tr>
        <th>First Name</th>
        <th>Last Name</th>
    </tr>
    <tr>
        <td>{{ tutor.FirstName }}</td>
        <td>{{ tutor.LastName }}</td>
    </tr>
    <tr>
        <th>Email</th>
        <th> Phone Number</th>
    </tr>
    <tr>
        <td>{{ tutor.Email }}</td>
        <td>{{ tutor.PhoneNumber }}</td>
    </tr>
    <tr>
        <th colspan="2">Requested Hours</th>
    </tr>
    <tr>
        <td colspan="2">{{ tutor.RequestedHours }}</td>
    </tr>
    </tbody>
</table>

有什么辦法可以修改CharField PhoneNumber的輸出,以便可以將其顯示為000-000-0000?

您應該在視圖中真正設置其格式,但在模板方面:

{% with pn=tutor.PhoneNumber|to_list %}
 {{ pn|slice:":3"|join:'' }}-{{ pn|slice:"3:6"|join:'' }}-{{ pn|slice:"6:"|join:''}}
{% endwith %}

您還可以修改模型:

class Tutor(models.Model):
    FirstName = models.CharField(max_length=50)
    LastName = models.CharField(max_length=50)
    Email = models.EmailField(max_length=100)
    PhoneNumber = models.CharField(max_length=10)
    RequestedHours = models.DecimalField(max_digits=3, decimal_places=1)

    def __str__(self):
        return str(self.FirstName + " " + self.LastName)

    def get_formatted_phone(self):
        return '{}-{}-{}'.format(self.PhoneNumber[:3],
                                 self.PhoneNumber[3:6],self.PhoneNumber[6:])

然后在您的模板中:

{{ tutor.get_formatted_phone }}

但是這種東西確實屬於視圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM