6 Mayıs 2011, Cuma
Nasıl Django sınıf temelli genel ListViews ile sayfa numaralandırması kullanırım?
Nasıl Django 1.3 sayfa kullanabilirim?
Belgelere bu konuda çok net değil.
Benim için
views.py
Ne gider?Benim şablon için neler yapılıyor?
URLconf dosyamı ne gider?
CEVAP
6 Mayıs 2011, Cuma
Yeni sınıf ile sayfa numaralandırması kullanımı hakkında bilgi, fonksiyon tabanlı geleneksel manzaralı, bulmak kolay olduğu için görüşlerini alarak için soruyorsun sanırım. Sadece ayarı tarafından paginate_by
değişken sayfa etkinleştirmek için yeterli olduğunu buldum. BakınClass-based generic views.
Örneğin, views.py
içinde:
import models
from django.views.generic import ListView
class CarListView(ListView):
model = models.Car # shorthand for setting queryset = models.Car.objects.all()
template_name = 'app/car_list.html' # optional (the default is app_name/modelNameInLowerCase_list.html; which will look into your templates folder for that path and file)
context_object_name = "car_list" #default is object_list as well as model's_verbose_name_list and/or model's_verbose_name_plural_list, if defined in the model's inner Meta class
paginate_by = 10 #and that's it !!
Şablon (car_list.html
), bu gibi sayfa numaralarının bir bölümü (bazı bağlam değişkenler kullanılabilir: is_paginated
, page_obj
paginator
) ekleyebilirsiniz.
{# .... **Normal content list, maybe a table** .... #}
{% if car_list %}
<table id="cars">
{% for car in car_list %}
<tr>
<td>{{ car.model }}</td>
<td>{{ car.year }}</td>
<td><a href="/car/{{ car.id }}/" class="see_detail">detail</a></td>
</tr>
{% endfor %}
</table>
{# .... **Now the pagination section** .... #}
{% if is_paginated %}
<div class="pagination">
<span class="page-links">
{% if page_obj.has_previous %}
<a href="/cars?page={{ page_obj.previous_page_number }}">previous</a>
{% endif %}
<span class="page-current">
Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}.
</span>
{% if page_obj.has_next %}
<a href="/cars?page={{ page_obj.next_page_number }}">next</a>
{% endif %}
</span>
</div>
{% endif %}
{% else %}
<h3>My Cars</h3>
<p>No cars found!!! :(</p>
{% endif %}
{# .... **More content, footer, etc.** .... #}
Görüntülemek için bu sayfa bir parametre, sadece URL için ?page=n
, ekleme gösterilir.
Bunu Paylaş:
Django üzerinde permission_required de...
Nasıl Django geri kalanı olmadan Djang...
Nasıl iki genel türleri ile bir arabir...
Nasıl bir sınıf, genel bir tür edebi a...
Nasıl alt sınıf adını bilmeden django ...