技术文摘
Django 前端如何判断文章是否为当日发布
2025-01-09 02:34:17 小编
在Django项目开发中,前端对于文章发布时间的判断,尤其是判断文章是否为当日发布,能够为用户提供更精准、时效性更强的内容体验。那么,具体该如何实现呢?
在后端Django的模型定义中,我们需要为文章模型添加一个发布时间字段。例如:
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
publish_time = models.DateTimeField(auto_now_add=True)
这里的publish_time字段记录了文章的发布时间,auto_now_add=True确保每次创建文章实例时,自动填充当前时间。
接着,在视图函数中,我们需要将文章对象传递给前端模板,并确保包含发布时间信息。
from django.shortcuts import render
from.models import Article
def article_list(request):
articles = Article.objects.all()
return render(request, 'article_list.html', {'articles': articles})
然后到前端模板(假设使用的是Django默认的模板引擎),我们要通过JavaScript来实现判断逻辑。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>文章列表</title>
</head>
<body>
{% for article in articles %}
<h2>{{ article.title }}</h2>
<p id="publish-time-{{ article.id }}">{{ article.publish_time }}</p>
<p id="is-today-{{ article.id }}"></p>
<script>
const publishTimeElement = document.getElementById('publish-time-{{ article.id }}');
const isTodayElement = document.getElementById('is-today-{{ article.id }}');
const publishTime = new Date(publishTimeElement.textContent);
const now = new Date();
if (publishTime.getFullYear() === now.getFullYear() &&
publishTime.getMonth() === now.getMonth() &&
publishTime.getDate() === now.getDate()) {
isTodayElement.textContent = '这篇文章是今日发布的';
} else {
isTodayElement.textContent = '这篇文章不是今日发布的';
}
</script>
{% endfor %}
</body>
</html>
在上述代码中,我们首先获取每个文章的发布时间元素,然后使用JavaScript的Date对象来创建发布时间和当前时间的实例。通过比较年份、月份和日期,判断文章是否为当日发布,并在对应的HTML元素中显示结果。
通过以上步骤,我们就实现了在Django前端判断文章是否为当日发布,为用户呈现了更具时效性的内容展示。
- 2020 OPPO 开发者大会:共融共创 塑造多终端跨场景智能生活
- 疫情下生意难做 外滩大会上联合国副秘书长指“数字金融”为解药
- 蚂蚁集团 CEO 胡晓明:上市后投技术乃重中之重
- Python 操作 Word 别再问我啦
- 一文读懂 C 语言操作 sqlite3 的方法
- 移动前端开发与 Web 前端开发有何区别
- TensorFlow 新接口助力简化 ML 移动端开发流程
- 12.9K 的前端开源项目让我收获了什么?
- 基础架构即代码模板常见的五个风险
- 技术选型探讨 - Angular2 与 Vue2 对比
- 为何不选用 Rust ?
- 一次生产事故致使 30 万单消失
- SecOps 与 DevSecOps:差异何在?
- Javascript 小技巧查缺补漏笔记
- Python 实现优雅登录校园网的方法