python - 如何确定 Django 中是否创建了新对象?
问题描述
我有一个带有评论的 Post 对象,我试图在 while 循环中发送 ajax 请求,以检查是否创建了新评论,如果有,请将它们添加到 DOM。
你如何在 django 中实现这一点?
这是我的模型:
class Post(models.Model):
name = models.CharField(max_length=255)
date_added = models.DateTimeField(auto_now_add=True)
last_modified = models.DateTimeField(auto_now=True)
class PostComment(models.Model):
comment = models.TextField()
author = models.ForeignKey(User, on_delete=models.CASCADE)
post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='post', related_query_name='post')
date_added = models.DateTimeField(auto_now_add=True)
last_modified = models.DateTimeField(auto_now=True)
我试图研究通道和网络套接字,但我发现的所有教程都使用旧版本的 django 和 python。所以我决定在一个while循环中简单地用ajax请求实现同样的效果。
我愿意接受有关如何实现我的结果的任何建议!
解决方案
您可以使用 date_added,即 DateTimeField。在您的请求中,您可以传递请求日期时间的最后响应,并且您可以过滤 date_added,因为您的最后请求日期时间值更大。请注意日期格式。
last_request_datetime = request.POST.get('last_request_datetime')
new_posts = Post.objects.filter(date_added__gt=last_request_datetime)
推荐阅读
- flyway - “installed_on”列中的空值违反非空约束
- node.js - NGinx 不在 Node.js 后端和 React 前端之间路由
- ios - UIScrollView 较小时的浮动内容
- javascript - 如何使用 Vue 动态列表在锚标记上设置活动类
- microsoft-graph-api - Teams 私人频道 - SPO 网站集语言和区域设置
- javascript - 检查网站是否从嵌入浏览器打开
- reactjs - How To Serve React App With Apache Reverse Proxy Across Domains
- c# - AdWords SDK 在 .net 核心应用中查找 System.Web 参考
- bash - 如何在不影响管道命令的标准输出的情况下获取 grep 退出代码
- sas - 运行以下 SAS 代码并想更改 proc freq