我希望人们能够对事物进行排序,而不仅仅是我手动排序。因此,例如,我将有一个排序链接,链接将类似于/?sort=issues
,这将按字母顺序显示问题列表等。或/?sort=cover
它将显示仅包含封面的问题列表。
Views.py
def issues(request):
issues_list = Issue.objects.order_by('-date_added')
paginator = Paginator(issues_list, 24)
try:
page = int(request.GET.get('page', '1'))
except ValueError:
page = 1
try:
issues = paginator.page(page)
except (EmptyPage, InvalidPage):
issues = paginator.page(paginator.num_pages)
return render_to_response('comics/issues.html', {'issues': issues}, context_instance=RequestContext(request))
所以,我希望任何人都可以通过-date_added
,date_addded
,pub_date
,importance
等方式进行排序。
我想我必须修改我的观点并做一些请求。获得魔法,但我对Django很新,并且真的不知道如何去做。我也检查了Django文档。
答案 0 :(得分:5)
sort_by = request.GET.get('sort', '-date_added')
if sort_by not in ['-date_added', 'date_addded', 'pub_date', 'importance']:
sort_by = '-date_added'
issues_list = Issue.objects.order_by(sort_by)
答案 1 :(得分:0)
将它放在视图的顶部:
user_specified = request.GET.get('sort', **''**)
if user_specified:
issues_list = Issue.objects.order_by(user_specified)
else: # default ordering
issues_list = Issue.objects.order_by('-date_added')
NB:Haven没有测试过这个!