У меня есть приложение django, которое будет извлекать и отображать 3 записи (вопросы) для всех пользователей приложения в течение 24-часового периода, начинающегося в определенное время, например, 11:00 ежедневно. Предпочтительно, я хотел бы рандомизировать список записей или просто использовать идентификатор вопроса, который автоинкрементный. Есть более 14 000 записей.
Я могу получить записи из БД и случайно отобразить эти записи. Однако каждый запрос http get (обновление окна браузера) получает разные вопросы.
Models.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 строки, чтобы те же записи больше не отображались. Промыть и повторить.