首页 > 解决方案 > 如何确定 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请求实现同样的效果。

我愿意接受有关如何实现我的结果的任何建议!

标签: pythondjango

解决方案


您可以使用 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)

推荐阅读