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 d'url doublée avec formulaire [Python 3.X]


Sujet :

Django Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2
    Points : 2
    Points
    2
    Par défaut probleme d'url doublée avec formulaire
    Bonjour à tous,

    Debutant sur Django, je cale depuis plusieurs jours sur un probleme d'url "doublée"

    Il s'agit d'un formulaire nommé appelé par l'url (et la vue) 'register/ ' qui, quand il est correctement rempli,
    doit renvoyer à l'url http://127.0.0.1:8000/login/

    Et au lieu de ça ça renvoie à http://127.0.0.1:8000/login/login (qui n'existe pas)

    N'ayant pas trouve d'infos sur ce type de problème je viens voir ici si quelqu'un aurait une idée pour m'aider.

    Je suis sous l'IDE Pycharm et son VirtualEnv sous Windows

    Merci et bonne soirée


    voici un extrait du contenu de mes fichiers :

    urls.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    from django.contrib import admin
    from django.urls import path
     
    from trombinoscoop.views import welcome, login, register
     
    urlpatterns = [
        path('', login),
        path('login/', login),
        path('welcome/', welcome),
        path('register/', register),
        path('admin/', admin.site.urls),
    ]
    views.py
    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
    from datetime import datetime
    from django.shortcuts import render, redirect
    from trombinoscoop.forms import LoginForm, StudentProfileForm
     
     
    def welcome(request):
        return render(request, 'welcome.html', {'current_date_time': datetime.now()})
     
     
    def register(request):
      if len(request.GET) > 0:
        form = StudentProfileForm(request.GET)
        if form.is_valid():
          form.save()
          # return redirect('/login')
          return redirect('/welcome')
        else:
          return render(request, 'user_profile.html', {'form': form})
      else:
        print('DDD')
        form = StudentProfileForm()
        return render(request, 'user_profile.html', {'form': form})
    template user_profile.thml
    Code twig : 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
    {% extends "base.html" %}
     
    {% block title %}
        Création d'un profil
    {% endblock %}
     
    {% block bodyId %}
        userProfilePage
    {% endblock %}
     
    {% block content %}
        <h1>Création d'un compte</h1>
        <form action="register" method="get">
            {{ form.as_p }}
            <p>
                <input type="submit" value="Créer un compte"/>
            </p>
        </form>
    {% endblock %}

    forms.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # -*- coding: utf-8 -*-
     
    from django import forms
    from trombinoscoop.models import Student
    from trombinoscoop.models import Person
     
    #(...)
     
     
    class StudentProfileForm(forms.ModelForm):
        class Meta:
            model = Student
            exclude = ('friends',)

  2. #2
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Done
    Hello tout le monde,

    Ça y est j'ai trouvé, si ça peut servir à quelqu'un :

    dans mon template html j'avais mis <form action="register/" method="get">.
    mais dans ce cas quand j'étais déjà à l'url /register cela m'envoyait à l'url /register/register qui n'existait pas ...

    en corrigeant comme suit <form action="/register" method="get"> là on reste bien à l'url /register

    le fait de mettre un slash au début de l'url a résolu le problème.

    Ouf !
    (ne vous moquez pas svp)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec formulaire PHP
    Par silvain dans le forum Langage
    Réponses: 8
    Dernier message: 28/08/2006, 23h58
  2. probleme avec formulaire
    Par rane dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 20
    Dernier message: 26/06/2006, 13h27
  3. Réponses: 2
    Dernier message: 02/06/2006, 11h20
  4. Réponses: 4
    Dernier message: 25/04/2006, 11h10
  5. Réponses: 3
    Dernier message: 24/02/2005, 15h48

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