@DmSS1997

Как на стороне сервера скрыть последние цифры номера телефона, взятого из БД?

У меня в базе данных хранятся номера телефона в текстовом формате. При выводе их на страницу необходимо последние две цифры спрятать за звёздочкой, важно сделать это со стороны сервера, чтобы не было возможности как-то спарсить или увидеть через 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 %}

Но это не работает. Номер прячется, но показывается везде только один номер. И я понимаю, почему так. Но я не понимаю, как это исправить или же как сделать правильно по другому, подскажите пожалуйста.
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Это задача для фильтра.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы