2015-04-14 4 views
0

Я нашел частичное решение моей проблемы - сортировки таблицы в Джанго (Sortable table columns in django)Dual Сортируемых столбцы таблицы в Джанго

Я пишу менеджер задач приложения. Вот часть модели

class Item(models.Model): 
    author = models.ForeignKey(User) 
    name = models.CharField('Brief summary of job', max_length=200) 
    created = models.DateTimeField('Created', auto_now=True,auto_now_add=True) 
    description = models.TextField('Description of job') 

У меня есть индексная страница, где я хочу хранить все задания в сортируемой таблице. Вот функция в воззрениях

def index(request): 
    order_by = request.GET.get('order_by', 'deadline') 
    jobs_list = Item.objects.all().order_by(order_by) 
    context = {'jobs_list': jobs_list} 
    return render(request, 'nc_jobs/index.html',context) 

и шаблон HTML для таблицы

<table class="table table-striped table-bordered"> 
    <th><a href="?order_by=name">Name</a></th> 
    <th><a href="?order_by=author">From</a></th> 
    <th><a href="?order_by=job_for">FAO</a></th> 
    <th><a href="?order_by=priority">Priority</a></th> 
    <th><a href="?order_by=deadline">Deadline</a></th> 
    <th><a href="?order_by=progress">Progress</a></th> 
    <th><a href="?order_by=done">Done</a></th> 
    {% for item in jobs_list %} 
    <tr> 
     <td><a href="/nc_jobs/{{ item.id }}/">{{ item.name }}</a></td> 
     <td> {{ item.author }} </td> 
     <td> {{ item.job_for }} </td> 
     <td> {{ item.priority }} </td> 
     <td> {{ item.deadline }} </td> 
     <td> ... 

Есть ли способ, что я могу изменить этот код, чтобы после второго щелчка заголовка таблицы можно сортировать любого столбец в обратном порядке. И если я снова нажму на заголовок этого столбца, он будет применяться по умолчанию?

Благодаря

ответ

1

я использовал в прошлом django-sorting, и это хорошо для вашей потребности. Он будет обеспечивать как восходящий, так и убывающий порядок для столбца.

{% load sorting_tags %} 
{% anchor name "Name" %} 
{% anchor author "From" %} 
{% autosort jobs_list %} 
Смежные вопросы