これは、タスクをリストし、descとascの3つの条件でソートするコードです。
私は今、2つの問題があります:
1)order_byは最初のページにのみ適用されます。 order_byが実行され、順序付きリスト全体が改ページされるようにしたいと思います。
2) "_pressed"矢印イメージは決して表示されません。
助けてください!ありがとう! 2番目の質問についてページング前のDJANGO order_by
VIEW.PY
def task_list(request, **kwargs):
q = Task.objects.all()
if 'sort' in request.GET:
sort_by = request.GET['sort']
else:
sort_by = 'latest-desc'
if sort_by == 'latest-desc':
q = q.order_by('-pub_date')
if sort_by == 'latest-asc':
q = q.order_by('pub_date')
if sort_by == 'price-desc':
q = q.order_by('-price')
if sort_by == 'price-asc':
q = q.order_by('price')
if sort_by == 'deadline-desc':
q = q.order_by('-expiry_date')
if sort_by == 'deadline-asc':
q = q.order_by('expiry_date')
kwargs['queryset'] = q.all()
return list_detail.object_list(request, **kwargs)
URL.PY
urlpatterns = patterns('',
url(r'^tasks/$', 'tasks.views.task_list',
{'template_name':'findtask.html', 'paginate_by':4}, name='tasks'),
)
HTML
<div class="sortList">
<ul>
<li class="sort">Sort by latest
<a href="?sort=latest-desc">{% if request.GET.sort == 'latest-desc' %}<img src="/static/img/downarrow_pressed.gif"/>{% endif %}
{% if request.GET.sort != 'latest-desc' %}<img src="/static/img/downarrow.gif"/>{% endif %}</a>
<a href="?sort=latest-asc">{% if request.GET.sort == 'latest-asc' %}<img src="/static/img/uparrow_pressed.gif"/>{% endif %}
{% if request.GET.sort != 'latest-asc' %}<img src="/static/img/uparrow.gif"/>{% endif %}</a></li>
<li class="sort">Sort by deadline
<a href="?sort=deadline-desc">{% if request.GET.sort == 'deadline-desc' %}<img src="/static/img/downarrow_pressed.gif" />{% endif %}
{% if request.GET.sort != 'deadline-desc' %}<img src="/static/img/downarrow.gif" />{% endif %}</a>
<a href="?sort=deadline-asc">{% if request.GET.sort == 'deadline-asc' %}<img src="/static/img/uparrow_pressed.gif" />{% endif %}
{% if request.GET.sort != 'deadline-asc' %}<img src="/static/img/uparrow.gif" />{% endif %}</a></li>
<li class="sort">Sort by price
<a href="?sort=price-desc">{% if request.GET.sort == 'price-desc' %}<img src="/static/img/downarrow_pressed.gif" />{% endif %}
{% if request.GET.sort != 'price-desc' %}<img src="/static/img/downarrow.gif" />{% endif %}</a>
<a> <a href="?sort=price-asc">{% if request.GET.sort == 'price-asc' %}<img src="/static/img/uparrow_pressed.gif" /> {% endif %}
{% if request.GET.sort != 'price-asc' %}<img src="/static/img/uparrow.gif" />{% endif %}</a></li>
</ul>
</div>
これが問題でした! context_processorsが機能しました。最初の質問は未だ解決されていません。 – magu2