我有一个 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/