django-pagination : 動かす

http://trac.hdknr.com/ticket/58

settings.py の編集

INSTALLED_APPS = (
    ‘pagination’,                       #HDKNR
)

MIDDLEWARE_CLASSES = (
#
    ‘pagination.middleware.PaginationMiddleware’,

)

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.core.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "django.core.context_processors.request",
)

Viewでの処理

hdknr@LennyOne:~/djopenid/djopenid$ vi alias/views.py

def alias_list(request):
    aliases = Alias.objects.filter(user=request.user)
    print "aliases = " , str(len(aliases))
    return direct_to_template(
        request,
        ‘alias/list.html’,
        {’user_url’: getViewURL(request,alias_list ),
         ‘aliases’ : aliases
         })

改ページコントロール部分のHTML

hdknr@LennyOne:~/djopenid/djopenid$ more templates/pagination/pagination.html
{% if is_paginated %}
{% load i18n %}
<div class="pagination">
    {% if page_obj.has_previous %}
        <a href="?page={{ page_obj.previous_page_number }}{{ getvars }}" class="prev">&lsaquo;&lsaquo; {% trans "previous" %}</a>
    {% else %}
        <span class="disabled prev">&lsaquo;&lsaquo; {% trans "previous" %}</span>
    {% endif %}
    {% for page in pages %}
        {% if page %}
            {% ifequal page page_obj.number %}
                <span class="current page">{{ page }}</span>
            {% else %}
                <a href="?page={{ page }}{{ getvars }}" class="page">{{ page }}</a>
            {% endifequal %}
        {% else %}
            …
        {% endif %}
    {% endfor %}
    {% if page_obj.has_next %}
        <a href="?page={{ page_obj.next_page_number }}{{ getvars }}" class="next">{% trans "next" %} &rsaquo;&rsaquo;</a>
    {% else %}
        <span class="disabled next">{% trans "next" %} &rsaquo;&rsaquo;</span>
    {% endif %}
</div>
{% endif %}

実際の一覧処理テンプレート

hdknr@LennyOne:~/djopenid/djopenid$ more templates/alias/list.html
{% extends "base.html" %}
{% load pagination_tags %}

{% block content %}

{% if aliases %}
    {% autopaginate aliases %}
       {% for a in aliases %}
          {{ a.alias }} <br/>
       {% endfor %}

     <hr>
     {% paginate %}
{% endif %}

{% endblock %}

動いた。

WS000028

WS000029

カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中