Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3/Django-QuerySet未更新_Python_Django_Django Queryset - Fatal编程技术网

Python3/Django-QuerySet未更新

Python3/Django-QuerySet未更新,python,django,django-queryset,Python,Django,Django Queryset,我正在创建一个允许创建事件的网站,这些事件将显示在主页和事件列表上,以便人们可以单击事件查看其描述,以及在事件中进行登记。我在获取类中的查询集以在添加新事件时更新时遇到问题 所以这个功能是为我们的主页。每次返回页面时,查询集都会更新,因此添加新事件时,它会显示在此页面上 def index(request): num_future_events = Event.objects.filter(date__gte=today).filter(approved=True).count()

我正在创建一个允许创建事件的网站,这些事件将显示在主页和事件列表上,以便人们可以单击事件查看其描述,以及在事件中进行登记。我在获取类中的查询集以在添加新事件时更新时遇到问题

所以这个功能是为我们的主页。每次返回页面时,查询集都会更新,因此添加新事件时,它会显示在此页面上

def index(request):
    num_future_events = Event.objects.filter(date__gte=today).filter(approved=True).count()
    query_set = Event.objects.filter(date__gte=today).filter(approved=True).order_by('date', 'time')[:3]

    context = {
        'num_future_events': num_future_events,
        'query_set': query_set
    }

    return render(request, 'index.html', context=context)
这是我网站上事件列表页面的一个类。它使用一个查询集,但由于该类只被调用一次,因此该查询集只会随着该类的初始化而更新

class EventListView(generic.ListView):
    model = Event
    query_set = Event.objects.filter(date__gte=today).exclude(approved=False).order_by('date', 'time')[:21]
    template_name = 'listPage.html'

    def get_queryset(self):
        return self.query_set
我希望得到一些帮助,当添加新事件时,EventListView类中的查询集会自动更新,以便显示在此页面上

任何帮助都将不胜感激。

如果我们看一下,我们会看到:

或者,如果确实要覆盖get_queryset函数,可以使用:

class EventListView(generic.ListView):
    model = Event
    template_name = 'listPage.html'

    def get_queryset(self):
        return Event.objects.filter(
            date__gte=today
        ).exclude(approved=False).order_by('date', 'time')[:21]
或:

Django每次都会在QuerySet中将.all附加到它,以强制重新评估。
class EventListView(generic.ListView):
    model = Event
    queryset = Event.objects.filter(
        date__gte=today
    ).exclude(
        approved=False
    ).order_by('date', 'time')[:21]
    template_name = 'listPage.html'
class EventListView(generic.ListView):
    model = Event
    template_name = 'listPage.html'

    def get_queryset(self):
        return Event.objects.filter(
            date__gte=today
        ).exclude(approved=False).order_by('date', 'time')[:21]
class EventListView(generic.ListView):
    model = Event
    template_name = 'listPage.html'
    query_set = Event.objects.filter(
        date__gte=today
    ).exclude(approved=False).order_by('date', 'time')[:21]

    def get_queryset(self):
        return self.query_set.all()