example - Uso de HttpResponseRedirect() en una vista de Django donde se debe pasar el contexto



httpresponseredirect django (1)

En esta aplicación mía de Django, utilizo una clase ListView para enumerar las fotos cargadas por el usuario. Uno puede votar o rechazar estas fotos. Los usuarios no autenticados pueden ver las fotos, pero no pueden emitir votos.

Una sección no identificable de mis usuarios usa dispositivos heredados que no pueden admitir JS. Para tales usuarios, upvote o downvote no están habilitados para AJAX. En cambio, la página completa se actualiza.

Me aseguro de que la actualización de la página atraiga a esos usuarios en la misma foto que votaron. Lo hago a través de la <a name="section{{ forloop_counter }}"> en HTML.

Muestro 20 fotos por página, es decir, 20 secciones. Al votar, paso el photo_id para def get(self, request, *args, **kwargs) de la clase ListView. section_num cuál section_num aparece el photo_id. Luego simplemente return HttpResponseRedirect(section_num) . Esto me lleva a la posición correcta, por ejemplo, http://example.com/?page=1#section8 .

Mi pregunta es: en lugar de usar una ListView class , supongamos que estoy escribiendo mi propia vista personalizada para enumerar las fotos y tal. ¿Cómo implemento la funcionalidad HttpResponseRedirect(section_num) antes mencionada en este caso? Un ejemplo ilustrativo sería genial. ¡Gracias por adelantado!

Aquí está mi vista personalizada:

    def photos_list(request, *args, **kwargs):
        form = PhotosListForm()
        ob_list = retrieve_latest_photos(request.user.id)
        paginator = Paginator(ob_list, 20)
        page = request.GET.get('page', '1')
        try:
            page = paginator.page(page)
        except PageNotAnInteger:
            page = paginator.page(1)
        except EmptyPage:
            page = paginator.page(paginator.num_pages)
        context = {'object_list': ob_list, 'form':form, 'page':page,'username':request.user.username}
        return render(request, 'photos_list.html', context)

Nota: Leí esta pregunta SO , pero no puedo discernir cómo ayuda en mi caso. Parte de eso se debe a que soy un principiante, pero también porque el op parece tener un problema diferente


Sus preguntas no están claras; sin embargo, ¿consideró usar <a name="section{{ object.id }}"> o <div id="photo-{{ object.id }}"> y redireccionar a #photo.id lugar de calcular?





django-views