Vous n'êtes pas identifié(e).
Bonjour à tous,
Je souhaite savoir s'il existe un moyen pour passer une requête dans views.py permettant d'accéder à un endroit précis d'une page web plutôt que d'arriver directement au haut de page.
Si oui comment faire? j'ai essayé quelques choses du genre render_to_response('page.html#mon_ancre') sans succès.
D'avance merci
Hors ligne
Bonsoir,
Il te faut faire une HttpResponseRedirect() vers la page avec ton ancre.
Tu fais une view qui donne ta page et lorsque tu arrives sur
prepage.html tu redirige vers page.html#mon_ancre
Il y a pas vraiment d'autres solutions vu que c'est une interpretation
navigateur.
A bientôt
Rémy
Le 3 sept. 09 à 01:23, GENTIL charlie a écrit :
> Bonjour à tous,
>
> Je souhaite savoir s'il existe un moyen pour passer une requête dans
> views.py permettant d'accéder à un endroit précis d'une page web
> plutôt que d'arriver directement au haut de page.
>
> Si oui comment faire? j'ai essayé quelques choses du genre
> render_to_response('page.html#mon_ancre') sans succès.
>
> D'avance merci
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
Hors ligne
Bonjour,
Pourrais-tu m'aider encore un peu...
Si je comprends bien je fais dans un premier une fonction qui m'envoie grâce à un render_to_response() sur une page html:
def index(request):
return render_to_response('index.html')
C'est ensuite que je ne vois pas comment faire la redirection. Tu dis "lorsque j'arrive sur la page, je redirige",
Déjà comment puis-je dans la même fonction passer un render_to_response() et un HttpResponseRedirect()???
Je pense que déjà là je m'égare.... A noter aussi que je dois passer des variables, ce que HttpResponseRedirect() ne permet pas.
Ensuite en utilisant ce HttpResponseRedirect() j'aurai dans ma barre de navigation quelques choses du genre:
http://monsite/page1.html#mon_ancre
Cet Url n'étant pas déclarer dans Urls.py je vais retourner un message d'erreur.
Merci d'avance pour ton aide.
@+
Bonsoir,
Il te faut faire une HttpResponseRedirect() vers la page avec ton ancre.
Tu fais une view qui donne ta page et lorsque tu arrives sur
prepage.html tu redirige vers page.html#mon_ancre
Il y a pas vraiment d'autres solutions vu que c'est une interpretation
navigateur.
A bientôt
Rémy
Le 3 sept. 09 à 01:23, GENTIL charlie a écrit :
> Bonjour à tous,
>
> Je souhaite savoir s'il existe un moyen pour passer une requête dans
> views.py permettant d'accéder à un endroit précis d'une page web
> plutôt que d'arriver directement au haut de page.
>
> Si oui comment faire? j'ai essayé quelques choses du genre
> render_to_response('page.html#mon_ancre') sans succès.
>
> D'avance merci
Hors ligne
Les paramètres (ce qui suit le ?) ou les ancres (ce qui suit le #) ne sont pas évalués dans le url.py donc il n'y a pas de pb de ce coté là.
Comme l'a dit Rémy, la gestion du positionnement dans la page via une ancre ou tout autre technique est une problématique client donc je ne suis pas sûr que la solution la plus simple soit de gérer ça coté serveur.
Pour moi le plus simple serait d'inserer une petite ligne de javascript à la fin de ton template ou dans un onload du body du genre :
<script>document.location.href = '#ton_ancre';</script>
Au pire si javascript n'est pas activé coté client tu n'as pas le positionnement mais ce n'est pas un drame.
Félix
________________________________
De : django-bounces _AT_ lists.afpy.org [mailto:django-bounces _AT_ lists.afpy.org] De la part de GENTIL charlie
Envoyé : jeudi 3 septembre 2009 07:16
À : django _AT_ lists.afpy.org
Objet : [afpy/django] Pointage sur une ancre
Bonjour,
Pourrais-tu m'aider encore un peu...
Si je comprends bien je fais dans un premier une fonction qui m'envoie grâce à un render_to_response() sur une page html:
def index(request):
return render_to_response('index.html')
C'est ensuite que je ne vois pas comment faire la redirection. Tu dis "lorsque j'arrive sur la page, je redirige",
Déjà comment puis-je dans la même fonction passer un render_to_response() et un HttpResponseRedirect()???
Je pense que déjà là je m'égare... A noter aussi que je dois passer des variables, ce que HttpResponseRedirect() ne permet pas.
Ensuite en utilisant ce HttpResponseRedirect() j'aurai dans ma barre de navigation quelques choses du genre:
http://monsite/page1.html#mon_ancre
Cet Url n'étant pas déclarer dans Urls.py je vais retourner un message d'erreur.
Merci d'avance pour ton aide.
@+
Bonsoir,
Il te faut faire une HttpResponseRedirect() vers la page avec ton ancre.
Tu fais une view qui donne ta page et lorsque tu arrives sur
prepage.html tu redirige vers page.html#mon_ancre
Il y a pas vraiment d'autres solutions vu que c'est une interpretation
navigateur.
A bientôt
Rémy
Le 3 sept. 09 à 01:23, GENTIL charlie a écrit :
> Bonjour à tous,
>
> Je souhaite savoir s'il existe un moyen pour passer une requête dans
> views.py permettant d'accéder à un endroit précis d'une page web
> plutôt que d'arriver directement au haut de page.
>
> Si oui comment faire?
j'ai essayé quelques choses du genre
> render_to_response('page.html#mon_ancre') sans succès.
>
> D'avance merci
Hors ligne
Concernant le # dans mon urls.py ça me retourne une erreur. Je verrai en détail ceci plus tard.
Par contre le script
<script>document.location.href =
'#ton_ancre';</script>
Ajoute bien #ton_ancre à la fin de l'url mais sans m'y renvoyer, alors que si je rajoute à la main cette ancre le renvoi marche correctement?
Je ne suis pas super alaise en html et un autre petit coup de pouce serai le bien venu.
Merci.
Charlie
________________________________
De : "Felix.Lemaignen _AT_ sungard.com" <Felix.Lemaignen _AT_ sungard.com>
À : django _AT_ lists.afpy.org
Envoyé le : Jeudi, 3 Septembre 2009, 13h36mn 04s
Objet : Re: [afpy/django] Pointage sur une ancre
Les paramètres (ce
qui suit le ?) ou les ancres (ce qui suit le #) ne sont pas évalués dans le
url..py donc il n'y a pas de pb de ce coté là.
Comme l'a dit Rémy,
la gestion du positionnement dans la page via une ancre ou tout autre technique
est une problématique client donc je ne suis pas sûr que la solution la plus
simple soit de gérer ça coté serveur.
Pour moi le plus
simple serait d'inserer une petite ligne de javascript à la fin de ton template
ou dans un onload du body du genre :
<script>document.location.href =
'#ton_ancre';</script>
Au pire si
javascript n'est pas activé coté client tu n'as pas le positionnement mais ce
n'est pas un drame.
Félix
________________________________
De : django-bounces _AT_ lists.afpy.org
[mailto:django-bounces _AT_ lists.afpy.org] De la part de GENTIL
charlie
Envoyé : jeudi 3 septembre 2009 07:16
À : django _AT_ lists.afpy.org
Objet : [afpy/django] Pointage sur une
ancre
Bonjour,
Pourrais-tu m'aider encore un peu...
Si je comprends bien je fais dans un premier une fonction qui m'envoie grâce à un render_to_response() sur une page html:
def index(request):
return render_to_response('index.html')
C'est ensuite que je ne vois pas comment faire la redirection. Tu dis "lorsque j'arrive sur la page, je redirige",
Déjà comment puis-je dans la même fonction passer un render_to_response() et un HttpResponseRedirect()???
Je pense que déjà là je m'égare... A noter aussi que je dois passer des variables, ce que HttpResponseRedirect() ne permet pas.
Ensuite en utilisant ce HttpResponseRedirect() j'aurai dans ma barre de navigation quelques choses du genre:
http://monsite/page1.html#mon_ancre
Cet Url n'étant pas déclarer dans Urls.py je vais retourner un message d'erreur.
Merci d'avance pour ton aide.
@+
Bonsoir,
Il te faut faire une HttpResponseRedirect() vers la page avec ton ancre.
Tu fais une view qui donne ta page et lorsque tu arrives sur
prepage.html tu redirige vers page.html#mon_ancre
Il y a pas vraiment d'autres solutions vu que c'est une interpretation
navigateur.
A bientôt
Rémy
Le 3 sept. 09 à 01:23, GENTIL charlie a écrit :
> Bonjour à tous,
>
> Je souhaite savoir s'il existe un moyen pour passer une requête dans
> views.py permettant d'accéder à un endroit précis d'une page web
> plutôt que d'arriver directement au haut de page.
>
> Si oui comment faire?
j'ai essayé quelques choses du genre
> render_to_response('page.html#mon_ancre') sans succès.
>
> D'avance merci
Hors ligne
Bonjour,
On 03/09/09 16:47, GENTIL charlie wrote:
> Concernant le # dans mon urls.py ça me retourne une erreur. Je verrai en
> détail ceci plus tard.
C'est normal : le # ne doit pas être indiqué dans le fichier url.py,
index.html et index.html#ancre désignants un seul et même fichier
(index.html).
> Par contre le script
> <script>document.location.href = '#ton_ancre';</script>
>
> Ajoute bien #ton_ancre à la fin de l'url mais sans m'y renvoyer, alors
> que si je rajoute à la main cette ancre le renvoi marche correctement?
>
> Je ne suis pas super alaise en html et un autre petit coup de pouce
> serai le bien venu.
En gros, voici une des solutions à ton problème, via un système de
redirection :
def vue1(request):
[...]
request.session['var1'] = var1
request.session...
return HttpResponseRedirect('/page/#ancre')
def page(request)
var1 = request.session.get('var1')
if not var1:
HttpResponseRedirect(...)
request.session['var1'] = None
request.session...
return render_to_response('template.html')
La solution conssite à créer une vue qui va traiter les informations qui
lui sont passés en POST via un formulaire (représenté par le premier
[...]), sans les afficher. Une fois ceci fait, les variables à afficher
ne sont pas passés au template via render_to_response(), mais mise en
session.
Le visiteur est ensuite redirigé vers la page à afficher avec l'ancre
(/page/#ancre dans mon exemple), qui va récupérer les informations mises
en session à l'étape précédente et les passer au template.
Si toutefois ces informations n'exitaient pas (l'utilisateur accède à
/page/ sans avoir validé le formulaire), il sera redirigé vers le
formulaire.
J'espère que mes explications ont étés assez claires
Hors ligne
Bonjour à tous,
Petit message pour vous remercier tous.
La soluce de Jonathan marche nikel et répond en plus à une autre de mes questions concernant la possibilité d'afficher une variable issu d'un formulaire sur plusieurs page (grâce au session)
2 coups en 1. Excellent.
Encore merci
Hors ligne