Django-fr

Forum

#1 15-02-2011 14:50:33

beegees
Membre
Inscription : 26-12-2010
Messages : 66

Error 404 page not found

Bonjour tout le monde,

J'ai un gros souci que voici :

Page not found (404)
Request Method:    POST
Request URL:    http://localhost:8000/neuro/input/create/
No Patient matches the given query.

Le fichier input_urls contient bien la correspondance entre la fonction et la page :

url(r'^create/$',create,name="ajout-patient"),

L'action du lien est celle-ci :

action="/neuro/input/create/"

Voici le code de la fonction create :

@login_required
@csrf_protect
def create(request):
    print('50')
    print(request)
    form = completePatientForm(req = request.POST)
    valid = True
    for element in form:
        if not element.is_valid():
            valid = False
    if valid:
        pat = form[0].save()
        for i in range (1, len(form)):
            model = form[i].save(commit=False)
            model.add(pat)
            model.save()
        return HttpResponseRedirect(reverse('get-patient-data', args=(request.POST['dmu_number'],)))
    return patient(request, request.POST['dmu_number'])

Je sais que ça doit être difficile à dire où se trouve le problème exactement mais auriez-vous une idée pour me mettre sur une piste ?

Je suis bloqué depuis samedi.

Merci d'avance.

Hors ligne

#2 15-02-2011 17:43:31

David Thenon
Membre
Inscription : 11-08-2010
Messages : 156
Site Web

Re : Error 404 page not found

Salut,

Dans ton exception il y a "No Patient matches the given query.", il parle donc
de modèle "Patient", ça veut dire qu'il arrive bien sur ta vue mais que celle-
ci lève un 404 parce que l'objet que tu lui demandes n'existe pas, en général
si c'est pas toi qui fait explicitement un "raise Http404" c'est que ça vient
d'un "get_object_or_404(Model, kwargs)" dans ton code.

À priori vu le code de ta vue fournit, ça doit être localisé dans ton
"completePatientForm".

Note que lorsque c'est une URL mal formée/rangée/résolue, le message de
l'exception d'un Http404 est "No PATTERN matches the given query".

Hors ligne

#3 15-02-2011 17:56:59

David Thenon
Membre
Inscription : 11-08-2010
Messages : 156
Site Web

Re : Error 404 page not found

Erratum:

Quand c'est un échec de la résolution de l'url, le message n'est pas "No
Pattern mais matches the given query" mais un "Using the URLconf defined in
monapp.urls, Django tried these URL patterns, in this order: [...]"

(ce qui est encore plus distinctif d'un 404 à cause d'un "get_object_or_404")

Le mardi 15 février 2011 17:43:31, David THENON a écrit :
> Salut,
>
> Dans ton exception il y a "No Patient matches the given query.", il parle
> donc de modèle "Patient", ça veut dire qu'il arrive bien sur ta vue mais
> que celle- ci lève un 404 parce que l'objet que tu lui demandes n'existe
> pas, en général si c'est pas toi qui fait explicitement un "raise Http404"
> c'est que ça vient d'un "get_object_or_404(Model, kwargs)" dans ton code.
>
> À priori vu le code de ta vue fournit, ça doit être localisé dans ton
> "completePatientForm".
>
> Note que lorsque c'est une URL mal formée/rangée/résolue, le message de
> l'exception d'un Http404 est "No PATTERN matches the given query".
>
> > Bonjour tout le monde,
> >
> > J'ai un gros souci que voici :
> >
> > [quote]
> > Page not found (404)
> > Request Method:    POST
> > Request URL:    http://localhost:8000/neuro/input/create/
> > No Patient matches the given query.
> > [/quote]
> >
> > Le fichier input_urls contient bien la correspondance entre la fonction
> > et la page :
> >
> >

url(r'^create/$',create,name="ajout-patient"),

> >
> > L'action du lien est celle-ci :
> >
> >

action="/neuro/input/create/"

> >
> > Voici le code de la fonction create :
> >
> >

> > @login_required
> > @csrf_protect
> > 
> > def create(request):
> >     print('50')
> >     print(request)
> >     form = completePatientForm(req = request.POST)
> >     valid = True
> >     
> >     for element in form:
> >         if not element.is_valid():
> >             valid = False
> >     
> >     if valid:
> >         pat = form[0].save()
> >         
> >         for i in range (1, len(form)):
> >             model = form[i].save(commit=False)
> >             model.add(pat)
> >             model.save()
> >         
> >         return HttpResponseRedirect(reverse('get-patient-data',
> > 
> > args=(request.POST['dmu_number'],)))
> > 
> >     return patient(request, request.POST['dmu_number'])
> > 
> >

> >
> > Je sais que ça doit être difficile à dire où se trouve le problème
> > exactement mais auriez-vous une idée pour me mettre sur une piste ?
> >
> > Je suis bloqué depuis samedi.
> >
> > Merci d'avance.
> > _______________________________________________
> > django mailing list
> > django _AT_ lists.afpy.org
> > http://lists.afpy.org/mailman/listinfo/django
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django

Hors ligne

#4 18-02-2011 09:18:17

Django
Membre
Inscription : 30-12-2010
Messages : 20

Re : Error 404 page not found

Bonjour David,

Je tiens à te remercier mille fois pour ton aide.

Le problème était dû à un plugin juqery.

Je garde précieusement tes explications qui pourront m'aider dans un
future proche.

Bonne fin de semaine.



Le 2/15/2011 5:43 PM, David THENON a écrit :
> Salut,
>
> Dans ton exception il y a "No Patient matches the given query.", il parle donc
> de modèle "Patient", ça veut dire qu'il arrive bien sur ta vue mais que celle-
> ci lève un 404 parce que l'objet que tu lui demandes n'existe pas, en général
> si c'est pas toi qui fait explicitement un "raise Http404" c'est que ça vient
> d'un "get_object_or_404(Model, kwargs)" dans ton code.
>
> À priori vu le code de ta vue fournit, ça doit être localisé dans ton
> "completePatientForm".
>
> Note que lorsque c'est une URL mal formée/rangée/résolue, le message de
> l'exception d'un Http404 est "No PATTERN matches the given query".
>

Hors ligne

Pied de page des forums