为视图设置ordering
属性.
class Reviews(ListView):
model = ProductReview
paginate_by = 50
template_name = 'review_system/reviews.html'
ordering = ['-date_created']
如果需要动态更改顺序,可以改用get_ordering
.
class Reviews(ListView):
...
def get_ordering(self):
ordering = self.request.GET.get('ordering', '-date_created')
# validate ordering here
return ordering
如果你总是对固定日期字段进行排序,你可能会对ArchiveIndexView
感兴趣.
from django.views.generic.dates import ArchiveIndexView
class Reviews(ArchiveIndexView):
model = ProductReview
paginate_by = 50
template_name = 'review_system/reviews.html'
date_field = "date_created"
请注意,除非将allow_future
设置为True
,否则ArchiveIndexView
不会显示具有将来日期的对象.