IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Django Python Discussion :

Probleme URL dupliqué


Sujet :

Django Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 57
    Par défaut Probleme URL dupliqué
    Bonjour,

    J'ai un petit souci avec mes urls sur un projet Django.

    En effet, pour une raison que je maitrise pas, certaines urls prennent cette forme:

    @IP:8000/mcourante/modif_voiture/15/registre

    au lieu de

    @IP:8000/mcourante/registre


    Et cela reste dans l'affichage des autres pages, les urls s'ajoutent mais empêchent le bon fonctionnement des pages, cela donne parfois:

    @IP:8000/mcourante/modif_voiture/15/registre/essence

    au lieu de

    @IP:8000/mcourante/essence

    Y a t-il un ordre a respecter dans le fichier urls ?

    Comment corriger cela ?

    Merci

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Bonjour,

    Comment accèdes-tu à ces urls ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 57
    Par défaut
    Bonjour,

    voici une partie du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    views.py
    def suivi_equipement(request):
        date = Date.objects.latest('date').id
        if request.method == 'POST':
            suiviequipement_form = SuiviEquipementForm(request.POST)
     
            if suiviequipement_form.is_valid():
     
                enregistrement = SuiviEquipement(
                date_id = date,
                radio = suiviequipement_form.cleaned_data['radio'],
                rateau = suiviequipement_form.cleaned_data['rateau'],
                marteau = suiviequipement_form.cleaned_data['marteau'],
                )
                enregistrement.save()
     
                return HttpResponseRedirect('tableau_suivi_equipement')
     
        else:
            suiviequipement_form = SuiviEquipementForm()
        return render(request, 'suivi_equipement.html', {'suiviequipement_form': suiviequipement_form })    
     
     
    def tableau_suivi_equipement(request):
        tableau_suivi_equipement = SuiviEquipement.objects.all()
        return render(request, 'tableau_suivi_equipement.html', {'tableau_suivi_equipement': tableau_suivi_equipement})
     
     
    def modif_suivi_equipement(request, id):
        if request.POST:
            book = SuiviEquipement.objects.get(id=id)
            form = SuiviEquipementForm(request.POST, instance=book)
     
            if form.is_valid():           
                form.save()
                return HttpResponseRedirect('tableau_suivi_equipement')
     
        else:
            book = SuiviEquipement.objects.get(id=id)
            form = SuiviEquipementForm(instance=book)
     
        return render(request, 'modif_suivi_equipement.html',  {'form': form})
    et voici le code pour les urls:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    app_name = 'mcourante'
     
    urlpatterns = [
     
        url(r'^$', views.index, name='index'),
     
        url('tableau_suivi_equipement', views.tableau_suivi_equipement, name='tableau_suivi_equipement'),
     
        url('suivi_equipement', views.suivi_equipement, name='suivi_equipement'),
        url('modif_suivi_equipement/(?P<id>[0-9]+)', views.modif_suivi_equipement, name='modif_suivi_equipement'),
     
    ]
    Cependant si je mets les urls dans cet ordre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    app_name = 'mcourante'
     
    urlpatterns = [
     
        url(r'^$', views.index, name='index'),
     
    ...
        url('suivi_equipement', views.suivi_equipement, name='suivi_equipement'),
        url('modif_suivi_equipement/(?P<id>[0-9]+)', views.modif_suivi_equipement, name='modif_suivi_equipement'),
        url('tableau_suivi_equipement', views.tableau_suivi_equipement, name='tableau_suivi_equipement'),
    ]
    Je suis redirigé sur la page "suivi_equipement" lorsque je clique sur "tableau_suivi_equipement"

    et j'ai des urls en double avec les urls suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
        url('registre_date/(?P<id>[0-9]+)', views.registre_date, name='registre_date'),
        url('registre', views.registre, name='registre'),
        url('tableau_evnt', views.tableau_evnt, name='tableau_evnt'),
    J’obtiens ceci si je veux atteindre la page "registre" en ayant au préalable été sur la page "registre_date/15" (mais les pages vues par la suite s'inscrivent dans la suite de l'url)
    @IP:8000/mcourante/registre_date/15/registre

    Mais de la page "registre" j'arrive sans problème sur la page "registre_date/15"

    Merci

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Bonjour,

    Regardez dans vos templates, si vos boutons mènent bien aux bons urls

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 57
    Par défaut
    Bonjour,
    j'accède à l'url "registre_date" via un lien qui se trouve dans un menu, tout comme registre qui se trouve dans un menu et via les templates

    j'ai pensé à une histoire de cache sur Linux, mais après redemarrage de ma chine de développement, meme problème

    Parfois en déplaçant la ligne de l'url dans le fichier urls.py cela refonctionne, mais pas dans tout les cas.

Discussions similaires

  1. Récuparation de l URL de IE
    Par Al_co dans le forum Langage
    Réponses: 4
    Dernier message: 24/04/2008, 08h39
  2. URL d'Internet Explorer
    Par dbourni dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 06/12/2002, 08h56
  3. [web] tester la validiter d'une URL
    Par zebiloute dans le forum Web
    Réponses: 4
    Dernier message: 25/11/2002, 16h51
  4. ListView->Items->Clear() !!! Qques probl de perf
    Par Nicolas_a69 dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/08/2002, 11h49
  5. Check Url pour savoir si erreur 404 ou si le site existe
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 2
    Dernier message: 07/08/2002, 13h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo