Django-fr

Forum

  • Accueil
  • » Django-fr
  • » Les formulaire dans une application basée sur le framewor django

#1 10-09-2016 04:15:12

Michel
Membre
Inscription : 09-09-2016
Messages : 1

Les formulaire dans une application basée sur le framewor django

Bonjour à tous !

Il y a une semaine maintenant que j'ai commencé à apprendre le framework django sur le site ""openclassroom"". Jusque là tout allait bien, c'est au des formulaire que je suis bloqué,

Je n'arrive pas à afficher le formulaire le localhost et du coup le server s'arrête.

Voici le code du formulaire : forms.py

from django import forms



class ContactForm(forms.Form):

   sujet = forms.CharField(max_length =100)

   message = forms.CharField(widget =forms.Textarea)

   envoyeur = forms.EmailField(label="Votre adresse mail")

   renvoi = forms.BooleanField(help_text = "Cochez si vous souhaitez recevoir la copie", required=False)

   ______________________________________________________

   

Et ici la vue: views.py

from django.http import HttpResponse, Http404
from django.shortcuts import render,redirect, get_object_or_404
from blog.forms import ContactForm

def contact(request):
    if request.method=="POST":
        form = ContactForm(request.POST)

        if form.is_valid():

            sujet = form.cleaned_data["sujet"]
            message = form.cleaned_data["message"]
            envoyeur = form.cleaned_data["envoyeur"]
            renvoi = form.cleaned_data["renvoi"]

            envoi = True

    else:
        form = ContactForm()

    return render(request, "blog/contact.html", locals())


__________________________________________________________

Ici l'url : url.py


from django.conf.urls import  url
from . import views

url(r'^contact/$', 'contact'),


___________________________
Et ici le template : contact.html

{% if envoi %} Votre message a bien été envoyé ! {% endif %}

<form action="{% url "blog.views.contact" %}" method="post">
   {% csrf_token %}
   {{form.as_p }}
   <input type="submit" value="Submit"/>

</form>
_____________________________________________________________________
Voici l'erreur qu'affiche le serveur dans la console :

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x045EBC48>
Traceback (most recent call last):
  File "C:\Users\pc\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\utils\autoreload.py", line 226, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\pc\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\management\commands\runserver.py", line 121, in inner_run
    self.check(display_num_errors=True)
  File "C:\Users\pc\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\management\base.py", line 374, in check
    include_deployment_checks=include_deployment_checks,
  File "C:\Users\pc\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\management\base.py", line 361, in _run_checks
    return checks.run_checks(**kwargs)
  File "C:\Users\pc\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\checks\registry.py", line 81, in run_checks
    new_errors = check(app_configs=app_configs)
  File "C:\Users\pc\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\checks\urls.py", line 14, in check_url_config
    return check_resolver(resolver)
  File "C:\Users\pc\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\checks\urls.py", line 24, in check_resolver
    for pattern in resolver.url_patterns:
  File "C:\Users\pc\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\utils\functional.py", line 35, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Users\pc\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\urls\resolvers.py", line 313, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "C:\Users\pc\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\utils\functional.py", line 35, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Users\pc\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\urls\resolvers.py", line 306, in urlconf_module
    return import_module(self.urlconf_name)
  File "C:\Users\pc\AppData\Local\Programs\Python\Python35-32\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 665, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "C:\ddjangom\crepes_bretonnes\crepes_bretonnes\urls.py", line 22, in <module>
    url(r'^blog/', include('blog.urls')),
  File "C:\Users\pc\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\conf\urls\__init__.py", line 50, in include
    urlconf_module = import_module(urlconf_module)
  File "C:\Users\pc\AppData\Local\Programs\Python\Python35-32\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 665, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "C:\ddjangom\crepes_bretonnes\blog\urls.py", line 17, in <module>
    url(r'^contact/$', 'contact'),
  File "C:\Users\pc\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\conf\urls\__init__.py", line 85, in url
    raise TypeError('view must be a callable or a list/tuple in the case of include().')
TypeError: view must be a callable or a list/tuple in the case of include().


_____________________________________________________________________________________________________


S'il vous plait aidez moi,
Ceux qui ont eu à faire ce cours faites-moi passer cette barrière. Toutes les leçons de devant sont composées en parties de formulaires et moi les formulaire ne passent pas. S.O.S, vous pouvez aller voir le cours voici l'adresse et me guider : https://openclassrooms.com/courses/deve … mulaires-6

Dernière modification par Michel (10-09-2016 04:19:04)


L'informatique est indispensable pour toute personne voulant s'épanouir

Hors ligne

#2 12-09-2016 08:47:44

Xavier Ordoquy
Administrateur
Lieu : Puteaux, France
Inscription : 12-10-2011
Messages : 312
Site Web

Re : Les formulaire dans une application basée sur le framewor django

Change

url(r'^contact/$', 'contact'),

par

url(r'^contact/$', views.contact),

NB: Rassure-moi, ton fichier urls n'est pas complet ici ?

Hors ligne

  • Accueil
  • » Django-fr
  • » Les formulaire dans une application basée sur le framewor django

Pied de page des forums