Ich bin auf ein Bild Portfolio App arbeiten, und ich habe eine URL bekam, die wie folgt aussieht:Django Paginierung - Umleiten auf der Seite ein Objekt auf
url(r'^(?P<slug_val>[-\w]+)/(?P<page>[0-9]+)/(?P<id>[0-9]+)/$', 'portfolio.views.imagedetail')
Im Wesentlichen das page
Element nur Dort kann ich den Benutzer auf die Seite der Thumbnails, aus der er gekommen ist, zurückleiten. Wenn die URL jedoch weitergegeben wird und einige Bilder vor dem Bild hinzugefügt oder entfernt werden, befindet es sich möglicherweise nicht mehr auf dieser Seite. Ich mag Benutzer in diesem Fall umleiten:
slug/correctpage/id
Was ich nicht herausfinden kann, ist, wie herauszufinden, was Seite ein Bild auf ist, mit Django eingebauten in Paginierung. Hier ist, was ich bisher habe:
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
Ich weiß, dass ich durch jede Seite laufen könnte, aber das scheint, wie es die Datenbank unnötig getroffen werden, und ich bin sicher, es muss eine elegantere Art und Weise sein, TU es.
Danke,
Dom
Die Entwicklerversion von Django und die 1.1 beta, Aggregatabfragen in ORM Code unterstützen, so dass Sie shouldn‘ t müssen auf Raw SQL zurückfallen. –