首页 > 解决方案 > 如何更新 Django QuerySet,使其不返回缓存数据?

问题描述

当我在模型中创建新记录时,我的 Django ListView 视图中的 QuerySet 不会自动更新。Django 管理员更新和数据库更新,但视图没有更新。

我开始意识到发生这种情况是因为 QuerySet 正在使用缓存数据。

要在获取请求上重新执行 QuerySet,我尝试了以下代码的各种版本,但均未成功...

def get_queryset(self):
    self.user = self.request.user
    queryset = Strategy.objects.filter(user=self.user)
    updated_queryset = queryset.update()
    return updated_queryset

每次刷新网页时都不会更新我的 QuerySet,而是返回一个空的 QuerySet。

我需要做什么来更新 GET 请求上的 QuerySet?

整个景色...

from django.views.generic import ListView, DetailView, FormView
from .models import Strategy, Version
from .forms import StrategyForm, VersionForm, ToolForm


class StrategyListView(ListView):
    model = Strategy
    context_object_name = 'strategy_list'
    template_name = 'simulator/strategy_list.html'

    def get_queryset(self):
        self.user = self.request.user
        return Strategy.objects.filter(user=self.user)

标签: djangodjango-views

解决方案


推荐阅读