SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Alan Fullmer

    Alan Fullmer

    3 EYLÜL 2010
  • Flash CS6 Video Tutorials for Beginners (Actionscript 3 Gaming)

    Flash CS6 Vi

    14 EYLÜL 2012
  • thegeniuses.tv

    thegeniuses.

    11 Aralık 2006