[英]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.