Vous n'êtes pas identifié(e).
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
Change
url(r'^contact/$', 'contact'),
par
url(r'^contact/$', views.contact),
NB: Rassure-moi, ton fichier urls n'est pas complet ici ?
Hors ligne