gpt4 book ai didi

python - 更改 get_context_data 中的查询集后分页不起作用

转载 作者:行者123 更新时间:2023-12-02 03:28:11 26 4
gpt4 key购买 nike

分页工作正常,直到我将 reverse arg 添加到 QS 以便以反向模式排序查询集。之后分页就被破坏了。我可以使用 get() 函数并在那里对其进行分页,但我认为对于这个问题应该是更好的解决方案。谢谢

模型.py:

class Log(models.Model):
user = models.ForeignKey('auth.User')
comment = models.CharField()
date_add = models.DateTimeField()
class Meta:
ordering = ['-date_add']

查看.py:

class LogView(ListView):
model = UserLog
template_name = 'log.html'
context_object_name = 'log_list'
paginate_by = 13

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

def get_context_data(self, *, object_list=None, **kwargs):
context = super(LogView, self).get_context_data(**kwargs)
if 'reverse' in self.request.GET:
context['log_list'] = Log.objects.filter(user=self.request.user).all().order_by('date_add')
return context

最佳答案

将运行查询集的代码移至 get_queryset,以便它在查询集分页之前运行。

def get_queryset(self):
queryset = Log.objects.filter(user=self.request.user).all()
if 'reverse' in self.request.GET:
queryset = queryset.order_by('date_add')
return queryset

关于python - 更改 get_context_data 中的查询集后分页不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52605869/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com