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 :

ValueError at /libri/ricerca/


Sujet :

Django Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut ValueError at /libri/ricerca/
    Bonjour,
    je n'arrive pas à comprendre l'erreur que j'ai avec mon code.
    Merci pour l'aide.

    L'erreur:
    Environment:

    Request Method: GET
    Request URL: http://127.0.0.1:8000/libri/ricerca/
    Django Version: 1.1.1
    Python Version: 2.6.3
    Installed Applications:
    ['django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.admin',
    'django.contrib.admindocs',
    'libreria']
    Installed Middleware:
    ('django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware')


    Traceback:
    File "c:\python26\lib\site-packages\django\core\handlers\base.py" in get_response
    109. raise ValueError, "The view %s.%s didn't return an HttpResponse object." % (callback.__module__, view_name)

    Exception Type: ValueError at /libri/ricerca/
    Exception Value: The view libreria.views_wiki.ricerca didn't return an HttpResponse object.

    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
    import urllib2
    from django import forms
    from django.shortcuts import render_to_response
    from django.shortcuts import get_object_or_404
    from django.utils.simplejson.decoder import JSONDecoder
    from models import *
     
    class WikisearchForm(forms.Form):
          autore = forms.IntegerField(widget=forms.Select(
                 choices = [(autore.pk, autore) for autore in Autore.objects.all()]))
          wikipedia = forms.CharField(widget=forms.Select(
                      choices=(("it","Italiana"), ("en","Inglese"))))
          limite = forms.IntegerField(initial=10, widget=forms.RadioSelect(
                                                  choices=((10,"10"), 
                                                           (50,"50"), 
                                                           (100,"100"))))
     
    wiki_url_api="http://%s.wikipedia.org/w/api.php?action=query&format=json&srlimit=%s&list=search&srsearch=%s"
    wiki_link="http://%s.wikipedia.org/wiki/"
     
    def ricerca(request):
        risultati = link = None
        if request.method == 'POST':
            form = WikisearchForm(request.POST)
            if form.is_valid():
                autore = get_object_or_404(Autore,
                                pk=form.cleaned_data['autore'])
                url = wiki_url_api % (form.cleaned_data['wikipedia'],
                                      form.cleaned_data['limite'],
                                      autore.cognome)
                link = wiki_link % form.cleaned_data['wikipedia']
                dati = urllib2.urlopen(url.encode('utf-8')).read()
                valori = JSONDecoder().decode(dati)
                risultati = valori['query']['search']
            else:
                form = WikisearchForm()
            return render_to_response('wikisearch.html', {
                'form': form,
                'link': link,
                'risultati': risultati,})

  2. #2
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Bonjour,

    ta vue ne renvoie aucune valeur en cas de requête GET d'où ton erreur.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Excuse, mais le dernier return? Je suis au début et je comprend très peu du langage. En plus c'est du code que j'ai copié d'un livre.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    return render_to_response('wikisearch.html', {
                'form': form,
                'link': link,
                'risultati': risultati,})

  4. #4
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    ton return n'est appellé qu'avec la méthode POST
    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
    def ricerca(request):
        risultati = link = None
        if request.method == 'POST':
    
             blablabla
    
             return render_to_response('wikisearch.html', {
                    'form': form,
                    'link': link,
                    'risultati': risultati,})
    
        # ajoute ca:
        else: #si la methode n'est pas POST 
            form = WikisearchForm()
            return render_to_response('wikisearch.html', {
                  'form': form,
                  'link': link,
                  'risultati': risultati,})

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2010
    Messages : 49
    Par défaut
    Si tu débutes en python, attention à l'indentation, on a vite fait de se tromper de bloc conditionnel.

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

Discussions similaires

  1. Récupération de ValueError
    Par meles dans le forum Général Python
    Réponses: 11
    Dernier message: 08/10/2012, 15h41
  2. test.py : ValueError: invalid literal for int()
    Par black-falco dans le forum Django
    Réponses: 2
    Dernier message: 05/08/2011, 12h11
  3. ValueError: dimensions too large
    Par perka dans le forum Calcul scientifique
    Réponses: 0
    Dernier message: 21/03/2011, 11h46
  4. [Pyopengl] glGenBuffers : ValueError
    Par Invité dans le forum 3D
    Réponses: 0
    Dernier message: 12/06/2010, 23h10
  5. Réponses: 2
    Dernier message: 25/06/2009, 16h07

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