У меня в базе данных хранятся номера телефона в текстовом формате. При выводе их на страницу необходимо последние две цифры спрятать за звёздочкой, важно сделать это со стороны сервера, чтобы не было возможности как-то спарсить или увидеть через html код в браузере.
model.py
class DailyOrders(models.Model):
phone = models.CharField(max_length=25, verbose_name='Номер телефона')
name_of_client = models.CharField(max_length=100, blank=True, null=True, verbose_name='Имя')
Я попытался сделать это самостоятельно следующим образом:
views.py
class QuickOrdersPage(ListView):
model = DailyOrders
template_name = 'Catalog/quick_orders.html'
context_object_name = 'orders'
allow_empty = True
paginate_by = 10
def get_context_data(self, *, object_list=None, **kwargs):
context = super().get_context_data(**kwargs)
def hide_phone(self):
allOrders = DailyOrders.objects.all()
for oneOrder in allOrders:
clientPhone = oneOrder.phone
clientPhone = clientPhone[:-2]
clientPhone += '**'
return clientPhone
context['clientPhone'] = hide_phone(self)
return context
{% for order in orders%}
<div class="modal-quick__row">
<div class="modal-quick__column first__column">
<div class="modal-quick__title">Имя собственника:</div>
</div>
<div class="modal-quick__column second__column">
<div class="modal-quick__text">{{order.name_of_client}}</div>
</div>
</div>
<div class="modal-quick__row">
<div class="modal-quick__column first__column">
<div class="modal-quick__title">Телефон:</div>
</div>
<div class="modal-quick__column second__column">
<div class="modal-quick__text" id="client__phone">{{clientPhone}}</div>
</div>
</div>
{% endfor %}
Но это не работает. Номер прячется, но показывается везде только один номер. И я понимаю, почему так. Но я не понимаю, как это исправить или же как сделать правильно по другому, подскажите пожалуйста.