Как сортировать в списке Django - PullRequest
3 голосов
/ 03 апреля 2012

Это список рабочих мест и их цены.Мне нужна помощь по сортировке.Я хочу сделать так, чтобы при нажатии на сортировку по бюджету список упорядочивался по убыванию бюджета, а при повторном нажатии изменялся для сортировки по увеличению бюджета.Я не знаю, требуется ли для этого новая страница site / findjob / sortbybudget, но я предпочитаю делать это в пределах site / findjob.Я был бы признателен за любую помощь или ссылки, которые я могу прочитать, чтобы сделать это.

Это urls.py

from django.conf.urls.defaults import patterns, include, url

from project.preview.models import Task

info_task = {
    'queryset': Task.objects.all(),
    'template_name': 'template.html',
}

urlpatterns = patterns('',
    (r'^findtask/$', 'django.views.generic.list_detail.object_list', dict(info_task)),
)

Это: template.html

<div class="sortList">
**Sort by:**
<ul>
    <li class="sort"><a href=""/>Budget</a></li>
    <li class="sort"><a href=""/>Newly Added</li>
</ul>
</div>

<div class="taskListCon">
        {% for object in object_list %}
        <div class="taskCon">
          <div class="Title">
          {{ object.title_description }}
          </div>
          <div class="clientID">                    
          {{object.userid}}
          </div>
          <div class="Price">
          Budget:{{ object.max_budget }}
        </div>
<div>
{% endfor %}

Ответы [ 3 ]

2 голосов
/ 03 апреля 2012

Лично я бы использовал что-то вроде jQuery tablesorter для решения этой проблемы. Это позволит вам сэкономить на поездке на сервер для каждого вида.

Документы: http://tablesorter.com/docs/

2 голосов
/ 03 апреля 2012

Вместо того, чтобы заново изобретать колесо, я предлагаю воспользоваться решением для повторного использования приложения, которое делает все правильно.

django-tables2 упрощает задачу преобразования наборов данныхв HTML-таблицы.Имеет встроенную поддержку разбиения на страницы и сортировки.Он делает для таблиц HTML то же, что django.forms делает для форм HTML.например,

Его функции включают в себя:

  • Любой итерируемый может быть источником данных, но включена специальная поддержка наборов запросов Django.
  • Встроенный пользовательский интерфейс не полагаетсяна JavaScript.
  • Поддержка автоматического создания таблиц на основе модели Django.
  • Поддержка пользовательских функций столбцов с помощью подклассов.
  • Разбиение на страницы.
  • Сортировка таблиц на основе столбцов.
  • Тег шаблона для включения тривиального рендеринга в HTML.
  • Миксин общего вида для использования в Django 1.3.

Скриншот

1 голос
/ 03 апреля 2012

Другим вариантом является использование django-фильтра. Просто посмотрите пример приложения:

https://github.com/alex/django-filter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...