Eu tenho que renderizar o valor de models.DateField() no modelo Django para uma funcionalidade de contagem regressiva. Para o DateField adicionarei o valor no admin do Django e preciso desse valor no Front-End. Tentei acessar o valor escrevendo obj.field(DateField)
mas não renderiza o valor. Por favor, dê uma olhada no código abaixo, você entenderá facilmente. Qualquer ajuda seria muito apreciada.
Eu tenho um modelo assim:
class FeaturedProduct(BaseModel):
type = models.CharField(max_length=255, choices=ProductTypeChoices.choices)
product = models.ForeignKey(Product, on_delete=models.CASCADE, null=True, blank=True, related_name='featured_products')
daily_deal_countdown = models.DateField(blank=True, null=True)
class Meta:
unique_together = ('type', 'product')
def __str__(self):
return str(self.product) + '-' + str(self.type)
No contexto de visualizações estou passando o daily_deals assim:
daily_deal = Product.objects.filter(featured_products__type=ProductTypeChoices.DAILY_DEAL)
context = {'daily_deal':daily_deal}
No template estou renderizando assim:
{% for product in daily_deal %}
<div class="daily-deal-countdown" data-countdown-date="{{ product.daily_deal_countdown }}"></div>
{% endfor %}
No template acima o valor do campo daily_deal_countdown
não mostra nada mesmo que meu Back-End tenha o valor.
Estou usando o valor data-countdown-date em javasript. E quando estou registrando o valor no console, ele não mostra nada.
Também tentei renderizar o valor no elemento assim:
<div class="daily-deal-countdown">{{ product.daily_deal_countdown }}</div>
Mas não mostra nada.
Por favor, me ajude a passar.
Parece que você está passando
Product
objetos para o seu modelo, enquanto o modelo que contémdaily_deal_countdown
éFeaturedProduct
. Então você tem 2 opções:daily_deal: FeaturedProduct.objects.filter(type=ProductTypeChoices.DAILY_DEAL)