模板未显示上下文变量

A_K

我创建了一个名为“行销应用程序”的应用程序,该应用程序自定义要在首页顶部编写的消息。我的问题是,在配置完所有内容后,这些消息没有显示,我也不知道为什么可能是模板,因为{{ marketing_message.message }}它没有显示

这是模型:

class MarketingMessage(models.Model):
    message = models.CharField(max_length=120)
    active = models.BooleanField(default=False)
    featured = models.BooleanField(default=False)
    timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
    updated = models.DateTimeField(auto_now_add=False, auto_now=True)
    start_date = models.DateTimeField(
        auto_now_add=False, auto_now=False, null=True, blank=True)
    end = models.DateTimeField(
        auto_now_add=False, auto_now=False, null=True, blank=True)

    def __str__(self):
        return str(self.message[:12])

这是视图:

from marketing.models import MarketingMessage

class HomeView(ListView):
    model = Item
    paginate_by = 10
    template_name = "home.html"

    def get_context_data(self, **kwargs):
        context = super(HomeView, self).get_context_data(**kwargs)
        context['marketing_message'] = MarketingMessage.objects.all()
        return context

这是模板:

{% if marketing_message %}
    <div id="top-alert"class="alert alert-light" style="padding-top:85px; margin-bottom:-24px;">
        <a href="#" class="close" data-dismiss="alert">×</a>
        <div class="container" style="text-align:center">
        <strong> Marketing Message ! : </strong> {{ marketing_message.message}}
        </div>   
    </div>
{% endif  %}
汤姆·卡里克

marketing_message 是QuerySet,而不是模型实例。

您可能只需要最新的“活动”消息。

context['marketing_message'] = MarketingMessage.objects.filter(active=True).latest('timestamp')

或最近更新:

context['marketing_message'] = MarketingMessage.objects.filter(active=True).latest('updated')

但是,latest()如果没有对象(可能不是您想要的),则将失败,但是您可以执行以下操作:

try:
    context['marketing_message'] = MarketingMessage.objects.filter(active=True).latest('updated')
except MarketingMessage.DoesNotExist:
    context['marketing_message'] = None

但是,查看您的数据似乎不正确。您有开始和结束日期,但也处于活动状态。您可以暗示某个活动是否在开始日期和结束日期之内。

另外,由于有了此功能,因此似乎一次可以有多条消息,在这种情况下,您应该删除.latest()并在开始日期和结束日期内进行迭代。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django模板上下文未显示

来自分类Dev

车把模板未填充上下文

来自分类Dev

从包含或导入的Jade模板访问Flask上下文变量?

来自分类Dev

模板的Django上下文变量名称

来自分类Dev

如何在模板中设置上下文变量

来自分类Dev

将JS变量发布到Django视图并在单独的模板中显示为上下文变量

来自分类Dev

Chrome扩展程序上下文菜单未显示

来自分类Dev

Nautilus上下文菜单中未显示Tortoisehg

来自分类Dev

Nautilus上下文菜单中未显示Tortoisehg

来自分类Dev

Microsoft Edge扩展中未显示上下文菜单

来自分类Dev

单张上下文菜单未显示在标记上

来自分类Dev

Xcode 中的上下文帮助未显示

来自分类Dev

如何使用传递给模板的附加上下文替换模板变量

来自分类Dev

线程上下文中的模板方法

来自分类Dev

Golang模板:上下文是什么?

来自分类Dev

角管模板上下文

来自分类Dev

Django模板上下文错误

来自分类Dev

与包含的模板django共享上下文

来自分类Dev

索引模板中的上下文列表

来自分类Dev

线程上下文中的模板方法

来自分类Dev

Django 模板上下文对象的目的?

来自分类Dev

Django 模板上下文不会呈现

来自分类Dev

组合上下文和表单时,模板显示标记而不显示页面

来自分类Dev

变量“ this”上下文在重新分配变量后未更新

来自分类Dev

通过lambda作为模板参数?(c ++ 20,未评估上下文中的lambda)

来自分类Dev

ContextMenuItem上下文函数未执行

来自分类Dev

Netlogo上下文未对齐

来自分类Dev

上下文未正确注入

来自分类Dev

插槽上下文未采用