Как по-другому отобразить поле объекта модели django на html-странице?
У моего объекта модели есть IntegerField, но я хочу иметь возможность отображать его по-разному на моей html-странице, например, допустим, объект IntegerField - 500000
я хочу отобразить его как 500 000$
на моей html-странице. Поэтому добавьте пробел перед last 3 number
и добавьте $
в конце.
У меня есть модель с IntegerField, которая выглядит следующим образом
class Listing(models.Model):
listing_price = models.IntegerField(max_length=100)
В моем представлении я извлекаю модели следующим образом
def home(request):
listing_object = Listing.objects.all()
context = {
"listing_object": listing_object,
}
return render(request, "main/index.html", context)
Я отображаю данные следующим образом
{% for listing in listing_new_object %}
{{listing.listing_price}}
{% endfor %}
У вас есть два варианта:
- Манипулируйте контекстом, чтобы составить список кортежей:
context = {
"listing_object": [(listing, f'{listing.listing_price:,}'.replace(",", " ")) for listing in listing_object]
}
затем в вашем шаблоне:
{% for _, price in listing_new_object %}
{{price}}
{% endfor %}
- Другой вариант - сделать фильтр шаблонов Django .
{{ listing.listing_price|price_format }}
from django import template
register = template.Library()
def price_format(value):
return f'{value:,}'.replace(",", " ")
register.filter(price_format)