显示模型。django 模板中的 DateField 值

Show models.DateField value in django template

提问人:Imtiaz Ahmed 提问时间:8/26/2023 最后编辑:Imtiaz Ahmed 更新时间:8/26/2023 访问量:18

问:

我必须呈现模型的值。DateField() 在 django 模板中用于倒计时功能。对于 DateField,我将在 django admin 中添加该值,我需要在前端添加该值。我试图通过写入来访问该值,但它没有呈现该值。请看下面的代码,你会很容易理解。任何帮助将不胜感激。obj.field(DateField)

我有一个这样的模型:

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)

在视图上下文中,我是这样传递daily_deals:

daily_deal = Product.objects.filter(featured_products__type=ProductTypeChoices.DAILY_DEAL)
context = {'daily_deal':daily_deal}

在模板中,我是这样渲染的:

{% for product in daily_deal  %}
    <div class="daily-deal-countdown" data-countdown-date="{{ product.daily_deal_countdown }}"></div>
{% endfor %}

在上面的模板中,即使我的后端具有该值,该字段的值也不会显示任何内容。daily_deal_countdown

我在javasript中使用data-countdown-date值。当我在控制台记录该值时,它不显示任何内容。

我还尝试像这样呈现元素中的值:

<div class="daily-deal-countdown">{{ product.daily_deal_countdown }}</div>

但它什么也没显示。

请帮我度过难关。

Django 模型 django 模板 date字段

评论


答:

1赞 user20223018 8/26/2023 #1

看起来您正在将对象传递给模板,而包含的模型是 .所以你有 2 个选择:Productdaily_deal_countdownFeaturedProduct

  1. 与其将 Product 传递到您的视图中,不如传递 FeaturedProduct,例如daily_deal: FeaturedProduct.objects.filter(type=ProductTypeChoices.DAILY_DEAL)
  2. 您必须遍历模板中与每个产品相关的所有featured_products

评论

0赞 Imtiaz Ahmed 8/26/2023
我真的犯了这个错误。谢谢你的指出。现在我还需要 Product 模型的属性,在这种情况下,我需要保持查询原样,您能告诉我如何呈现 FeaturedProduct 的daily_deal_countdown字段吗?如果我像 FeaturedProduct.objects.filter(type=ProductTypeChoices.DAILY_DEAL) 一样查询,我将没有要在模板中显示的 Product 属性。
0赞 user20223018 8/26/2023
你可以在模板中做的是假设你像这样循环{{ featured_product.product.your_property }}{% for featured_product in daily_deal %}
0赞 Imtiaz Ahmed 8/26/2023
非常感谢,我更改了daily_deals查询。您建议的查询方式解决了我的 FeaturedProduct 问题