【发布时间】:2020-07-09 15:47:16
【问题描述】:
我正在尝试在 Django 中构建电子商务应用程序。在每个产品中,我都有三个标签标签,分别是 is_new、is_hot、is_promo。
is_new 将是 True 当产品将创建时,我已经做到了。但是当产品超过 7 天时,系统需要自动将 is_new 设为 False。我在 Product 模型中添加了 created_date 字段。如何将 is_new 自动更新为 False?有什么提示吗?
is_hot 将 True 当产品最畅销时。实际上前两个产品会很热。并且当其他产品热销时,之前的热销产品将自动False。怎么做?提示?
is_promo 在我为产品添加折扣时将是True。当我取消折扣时,它将是 False。有什么提示吗?
【问题讨论】:
-
您可以在views.py 本身中编写逻辑。如查询所有 7 天前的产品并将逻辑添加到您的 home_view。这样无论何时呈现主页,它都会进行所有预处理并给出适当的结果。
-
另外,查看 @property 的 is_new 和 is_promo 属性。
-
嘿,我做过同样的事情。但它仅在我重新启动服务器或保存代码库时才有效。然后它会自动更新视图。我认为 django 默认有缓存。我在主页 Listview 上尝试过通用视图。
标签: django django-models django-views django-channels django-signals