Изменения в базе отображаются только после перезапуска gunicorn - PullRequest
0 голосов
/ 01 ноября 2019

Данные, полученные в NextPredictionListView в шаблоне prediction_next_list.html, обновляются немедленно. А в LastPredictionsListView (prediction_last_list.html) только после перезапуска gunicorn.

class NextPredictionsListView(ListView):
    model = Prediction
    queryset = Prediction.objects.filter(prediction_result=None)
    template_name = 'app/prediction_next_list.html'


class LastPredictionsListView(ListView):
    queryset = Prediction.objects.filter(~Q(prediction_result=None), date__lt=datetime.now())
    template_name = 'app/prediction_last_list.html'

1 Ответ

1 голос
/ 01 ноября 2019

Хотя сам набор запросов ленив, оценка datetime.now() не является;это будет установлено во время первого импорта класса. Таким образом, вы никогда не увидите никаких результатов с датой после этого времени.

Для чего-либо динамического, подобного этому, вы должны переместить его из уровня класса в метод, в данном случае метод get_queryset:

class LastPredictionsListView(ListView):
    template_name = 'app/prediction_last_list.html'

    def get_queryset(self):
        return Prediction.objects.filter(~Q(prediction_result=None), date__lt=datetime.now())
...