2010-06-17 5 views
2

Question: Comment forcer correctement le travail de mise en page? Le problème est que {% paginate %} ne fonctionne pas, mais d'autres {% load pagination_tags %} et {% autopaginate object_list 10 %} fonctionne!Dans Django-Paginate n'a pas la pagination de travail

message d'erreur est apparu, quand j'ajoute {% paginate %} en page html:

TemplateSyntaxError at /logging 
Caught an exception while rendering: pagination/pagination.html 

Ce que je l'ai fait:

  1. -django Installation sans aucun problème de pagination. Quand je fais en python import pagination, ça marche bien.

  2. Ajouté à paginations INSTALLED_APP dans settings.py:

    INSTALLED_APPS = ( # ..., 'paginations', )

  3. Ajouté à settings.py:

    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" )

  4. également ajouter à settings.py middleware:

    MIDDLEWARE_CLASSES = ( # ... ' pagination.middleware.PaginationMiddleware », )

  5. Ajouter en haut à views.py:

    de RequestContext django.template import

  6. Et enfin ajouter à mes lignes de page HTML modèle:

    {%}% charge pagination_tags ... {% autopaginate item_list 50%} { % pour le poste de item_list%} ... {% endfor%} {% paginate%}

Merci.


AJOUTÉE: Haut de rapport d'erreur:

TemplateSyntaxError at /logging 
Caught an exception while rendering: pagination/pagination.htmlRequest Method: GET 
Request URL: http://host:8123/logging?portfolio_id=1 
Exception Type: TemplateSyntaxError 
Exception Value: Caught an exception while rendering: pagination/pagination.html 
Exception Location: /usr/local/lib/python2.6/dist-packages/django/template/debug.py in render_node, line 81 
Python Executable: /usr/bin/python 
Python Version: 2.6.2 
Python Path: ['/home/mosg/sources/django/apm', '/usr/local/lib/python2.6/dist-packages/django_pagination-1.0.5-py2.6.egg', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/dist-packages', '/var/lib/python-support/python2.6', '/var/lib/python-support/python2.6/gtk-2.0', '/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages'] 
Server time: Thu, 17 Jun 2010 06:29:45 -0500 

Template error 

In template /home/mosg/sources/django/apm/templates/accounting/logging.html, error at line 93 
Caught an exception while rendering: pagination/pagination.html 
83  <td>{{ item.transaction_datetime }}</td> 
84  <td>{{ item.src_account }}</td> 
85  <td>{{ item.dst_account }}</td> 
86  <td>{{ item.body }}</td> 
87  <td>{{ item.estimated }}</td> 
88 <!-- 
89  <td><a href="./admin/accounting/transaction/{{item.id}}/">edit</a></td> 
90 --> 
91 </tr> 
92 {% endfor %} 
93 {% paginate %} 
94 </table> 
95 {% else %} 
96  <p>No transaction logs are available.</p> 
97 {% endif %} 
98   </div> 
99  
100 
101 </div> 
102   
103   <br class="clear" /> 

AJOUTÉE pour stevejalim:

@login_required 
def logging(request): 
    pid = request.GET.get('portfolio_id', 1) 
    item_list = TransactionsLogging.objects.filter(Q(portfolio_id=pid)).order_by('-datetime') 
    return render_to_response('accounting/logging.html', {'item_list': item_list, 'user': request.user,}, context_instance = RequestContext(request)) 

PS: quelques modifications nécessaires, parce que je ne peut pas le style de code django fonctionne bien ici :)

+0

Vous passez définitivement dans un QuerySet et non une liste ou un dictionnaire des choses que vous voulez paginer? –

+0

@stevejalim J'ajoute la fonction de journalisation au bas de ma question ... – mosg

Répondre

0

La solution a été trouvée plus tôt: django-pagination vous avez besoin de la dernière version, ce qui corrige le bug!

1

Pouvez-vous fournir plus de détails sur TemplateSyntaxError?

Toutes vos configurations semblent bonnes. Dans le modèle pagination/pagination.html, il y a {% load i18n %}. Avez-vous USE_I18N = True dans votre fichier de paramètres?

+0

Oui, 'USE_I18N = True' se présente dans settings.py (c'est par défaut je pense). Ne fonctionne pas seulement '{% paginate%}'. Si je le supprime de la source html, il montre seulement 10 éléments sur la liste, mais pas les boutons * previous *, * current * et * next *. Je peux ajouter un message d'erreur, mais c'est trop long ... – mosg

Questions connexes