Je travaille sur une application de portefeuille d'image, et j'ai une url qui ressemble à ceci:Django Pagination - allez être redirigé vers la page d'un objet est sur
url(r'^(?P<slug_val>[-\w]+)/(?P<page>[0-9]+)/(?P<id>[0-9]+)/$', 'portfolio.views.imagedetail')
Essentiellement, l'élément page
est seulement là je peux donc bien rediriger l'utilisateur vers la page des vignettes d'où ils viennent. Cependant, si l'URL est transmise et que certaines images sont ajoutées ou supprimées avant l'image, il se peut qu'elle ne soit plus sur cette page. Je voudrais rediriger les utilisateurs dans ce cas à:
slug/correctpage/id
Ce que je ne peux pas travailler est de savoir comment fonctionne ce que la page d'une image est, à l'aide intégrée de Django pagination. Voici ce que j'ai jusqu'à présent:
def imagedetail(request, slug_val, page, id):
p = get_object_or_404(MyPortfolio, slug=slug_val)
paginator = Paginator(p.images.all(), 25)
# find out which page the image with id is on, if it's not page,
# then redirect, otherwise render
Je sais que je pouvais parcourir chaque page, mais qui semble que ça va frapper la base de données inutilement, et je suis sûr qu'il doit y avoir une façon plus élégante de fais le.
Merci,
Dom
La version de développement de Django, et la bêta 1.1, support des requêtes globales dans le code ORM, de sorte que vous ne devriez » t besoin de revenir à SQL brut. –