Ok, so now i have:

template:
{% block coltype %}colMS{% endblock %}

{% block content %}

    <h1>Suche</h1>

    <form action="" method="GET">
        <label for="q">Search: </label>
        <input type="text" name="q" value="{{ query|escape }}">
        <input type="submit" value="Search">
    </form>

    {% if query %}
        <h2>Resultate für "{{ query|escape }}":</h2>

        {% if results %}
        <ul>
            <table>
                <tr>
                    <th>The Thin Client Name</th>
                    <th>Thin Client IP</th>
                    <th>The Thin Client MAC Address</th>
                    <th>Inventar Nummer</th>
                    <th>Einstellungen des Thin Clients</th>
                </tr>

                {% for Thin_Client in thin_client.object_list %}
                    <tr>
                        <td>{{ Thin_Client.NAME }}</td>
                        <td>{{ Thin_Client.IP }}</td>
                        <td>{{ Thin_Client.MAC }} </td>
                        <td>{{ Thin_Client.INVENTAR }} </td>
                        <td><a href=/thin_client/{{ Thin_Client.NAME }}
>Details</a></td>
                    </tr>
                {% endfor %}
            </table>
        </ul>
        {% else %}
            <p>No Thin Clients found</p>
        {% endif %}

    {% endif %}
{% endblock %}
{% block pagination %}

<div class="paginator" style="position: fixed; top:780px; width:
100%;
                              text-align: center;background-color:
#ADD8E6;
                              font-size: 14px;">

    <span style="font: bold .875em arial">

        {% if thin_client.has_previous %}
            <a href="?
page={{ thin_client.previous_page_number }}"><img
            src="/site_media/images/back_arrow.png" height="14"
            width="30" title="Back"></a>
        {% endif %}

        <span class="page">
            Seite {{ thin_client.number }} von
{{ thin_client.paginator.num_pages }}
        </span>

        {% if thin_client.has_next %}
            <a href="?page={{ thin_client.next_page_number }}"><img
            src="/site_media/images/arrow.png" height="14" width="30"
            title="Forward"></a>
        {% endif %}
    </span>
</div>
{% endblock %}

view:

def search(request):
    query = request.GET.get('q', '')

    if query:
        qset = (
            Q(NAME__icontains=query)
        )
        results = Thin_Client.objects.filter(qset).distinct()

    else:
        results = []

    paginator = Paginator(results, 25)
    try:
        page = int(request.POST.get('page', '1'))
    except ValueError:
        page = 1
    try:
        thin_client = paginator.page(page)
    except (EmptyPage, InvalidPage):
        thin_client = paginator.page(paginator.num_pages)

    return render_to_response("thin_clients/thin_client_search.html",
{
        "results": results,
        "query": query,
        "thin_client": thin_client
        })

urls:
    url(r'^$', 'thinco.views.list'),
    url(r'^thin_client/$', 'thinco.views.list'),
    url(r'^thin_client/page(?P<page>[0-9]+)/$',
'thinco.views.list'),
    url(r'^thin_client/(?P<slug>[a-zA-Z0-9_.-]+)/$',
list_detail.object_detail, thin_client_detail),
    url(r'^edit/thin_client/(?P<slug>[a-zA-Z0-9_.-]+)/$',
create_update.update_object, thin_client_update),
    url(r'^search/$', 'thinco.views.search'),
...

Now if i click next page I get an empty page because:
http://127.0.0.1:8000/search/?page=2,

I probably need a url entry and do i have to give the poaginator the
query or do I have to save the query somewhere?
Also thank you for your help.

On Sep 29, 3:51 pm, Tom Evans <tevans...@googlemail.com> wrote:
> On Thu, Sep 29, 2011 at 8:36 AM, Felix Wagner <hsaldi...@googlemail.com> 
> wrote:
> > Hello,
>
> > I'm currently trying to paginate my results from a search query.
>
> > views.py:
>
> > def search(request):
> >    query = request.GET.get('q', '')
>
> >    if query:
> >        qset = (
> >            Q(NAME__icontains=query)
> >        )
> >        results = Thin_Client.objects.filter(qset).distinct()
>
> >    else:
> >        results = []
>
> >    paginator = Paginator(results, 25)
> >    try:
> >        page = int(request.POST.get('page', '1'))
> >    except ValueError:
> >        page = 1
> >    try:
> >        thin_client = paginator.page(page)
> >    except (EmptyPage, InvalidPage):
> >        thin_client = paginator.page(paginator.num_pages)
>
> >    return render_to_response("thin_clients/thin_client_search.html",
> > {
> >        "results": results,
> >        "query": query,
> >        })
>
> You need to actually pass the paginated page ('thin_client') to your
> template and iterate over that. You are still iterating over the
> unpaginated 'results', so unsurprisingly you don't see the pagination.
> See the view example in the docs:
>
> https://docs.djangoproject.com/en/1.3/topics/pagination/#using-pagina...
>
> Cheers
>
> Tom

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to