javascript - Django 模型每天检索特定记录

标签 javascript python django django-models

我有一个 Django 应用程序,它将在从特定时间(例如每天 11:00)开始的 24 小时窗口内检索并向该应用程序的所有用户显示 3 条记录(问题)。最好,我想随机化记录列表或仅使用自动增量的问题 ID。有超过 14,000 条记录。

我可以从数据库中检索记录并随机显示这些记录。然而,每个http get请求(刷新浏览器窗口)都会检索到不同的问题 模型.py


    from django.db import models
    from django.contrib.auth.models import User
    from django.conf import settings

    class Questions(models.Model):
        question = models.CharField(max_length=254, blank=True, null=True)
        answer = models.CharField(max_length=254, blank=True, null=True)
        question_used = models.BooleanField(default=False)
        created_at = models.DateTimeField(auto_now_add=True)
        modified_at = models.DateTimeField(auto_now_add=True)

Views.py

    from django.shortcuts import render
    from django.views.generic import CreateView, View
    from .models import *
    from wallet.models import UserWallet

    class DailyDrawView(View):
        template_name = 'daily_draw/daily_draw.html'

        def get(self, request, *args, **kwargs):
            que_attempt = DailyDraw.objects.filter(user=request.user, is_active=True).last()
            question_objs = Questions.objects.all().order_by('?')[:3]
            points = WinnerPoint.objects.last().amount
            return render(request, self.template_name {'question_objs':question_objs, 'que_attempt':que_attempt, 'points':points })

每天在特定时间检索 3 条记录。在 24 小时内向所有用户显示这些记录。更新这 3 行,以便不再显示相同的记录。冲洗并重复。

最佳答案

所以我的解决方案是创建一个单独的表来存储问题 ID 和日期。然后将提出请求的时间与应生成新问题的恒定时间进行比较。如果时间超过 24 小时,我会使用新的一行问题 ID 和当前日期更新引用表。

如果有人需要,我可以发布更全面的答案。

关于javascript - Django 模型每天检索特定记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54101314/

相关文章:

javascript - 代码适用于 http ://jsfiddle.net 但不适用于 http ://liveweave. com

javascript - 在两个数组javascript之间查找重复项的最快方法

java - 计算 .maf 文件中发生突变的次数

python - 为 Django 的管理操作编写测试

python - Django 读取上传的文件并迭代字节

Django查询集匹配所有相关对象

javascript - 检测部分当前在滚动上是否可见

javascript - 向 li-Element 添加类

python - 连接列表和 int

Django自定义用户模型无法登录管理页面