Django

2010-09-06 28 views
5

için Sortable tabloları Bu konuda ve javascript ve diğer kütüphaneleri kullanarak bazı öneriler hakkında bazı diğer yazıları okurum. Elde çabuk bir şey yaptım, ama bu konuda Django ve Python için yeniyim, bu yüzden bunu yapmanın iyi bir yolu olmadığını merak ediyorum.Django

HTML

headers = {'to':'asc', 
     'date':'asc', 
     'type':'asc',} 

def table_view(request): 
    sort = request.GET.get('sort') 
    if sort is not None: 
     if headers[sort] == "des": 
      records = Record.objects.all().order_by(sort).reverse() 
      headers[sort] = "asc" 
     else: 
      records = Record.objects.all().order_by(sort) 
      headers[sort] = "des" 
    else: 
     records = Record.objects.all() 
    return render_to_response("table.html",{'user':request.user,'profile':request.user.get_profile(),'records':records}) 
+0

ben sorttable.js kodunuzu alma: üstbilgiler dict asla müşteriye geri gönderilmez, bu yüzden benim için, iç test her zaman başka bir kısma geri dönecek ve sonuç olarak her şey her zaman asc düzeninde sıralanacaktır. – madewulf

cevap

2

Bana iyi görünüyor

<table> 
     <tr> 
      <td><a href="?sort=to">To</a></td> 
      <td><a href="?sort=date">Date</a></td> 
      <td><a href="?sort=type">Type</a></td> 
     </tr> 
     {% for record in records %} 
     <tr><td>{{record.to}}</td><td>{{record.date}}</td><td>{{record.type}}</td></tr> 
     {% endfor %} 
    </table> 

Görünüm. Ben görünümü kodunda bir minör üstlenmeden öneririm: sıralanabilir tablolar çağrısının

headers = {'to':'asc', 
     'date':'asc', 
     'type':'asc',} 

def table_view(request): 
    sort = request.GET.get('sort') 
    records = Record.objects.all() 

    if sort is not None: 
     records = records.order_by(sort) 

     if headers[sort] == "des": 
      records = records.reverse() 
      headers[sort] = "asc" 
     else: 
      headers[sort] = "des" 

    return render_to_response(...)