Problème de soumission de formulaire
Bonjour, j'avais un formulaire en HTML stylisé avec du CSS que j'ai voulu transformer en formulaire lié django pour pouvoir recevoir les données envoyées par les utilisateurs dans ma table Contact. Sauf que ça ne fonctionne pas le formulaire s'affiche correctement mais il n'envoie rien quand j'appuie sur Envoyer, mon formulaire se trouve dans la page home et j'utilise wagtail que j'ai intégré à mon projet django pour permettre à des editeurs de modifier certaines parties du site. Tout ce que j'énonce ci dessous est fait dans mon application home qui concerne la page d'accueil et les chemins sont bien renseignés.
Voici mon form.py :
from django import forms
from .models import Contact
class ContactForm(forms.ModelForm):
class Meta:
model = Contact
fields = ['name', 'email', 'phone_number', 'reason', 'description', 'sex']
widgets = {
'name': forms.TextInput(attrs={'placeholder': 'Saisissez votre nom et prénom', 'class': 'box', 'maxlength': '50'}),
'email': forms.EmailInput(attrs={'placeholder': 'Saisissez votre adresse mail', 'class': 'box'}),
'phone_number': forms.TextInput(attrs={'placeholder': 'Saisissez votre numéro de téléphone', 'class': 'box'}),
'reason': forms.TextInput(attrs={'class': 'box'}),
'description': forms.Textarea(attrs={'class': 'box'}),
'sex': forms.Select(attrs={'class': 'box'}),
}
voici mon modèle :
class Contact(models.Model):
name = models.CharField(max_length=255)
email = models.EmailField()
phone_number = models.CharField(max_length=15)
reason = models.CharField(max_length=255)
description = models.TextField()
sex = models.CharField(max_length=10, choices=[('homme','Homme'), ('femme','Femme')])
Voici ma vue ( ça m'affiche ' pas bon' dans la console ) :
def contact_view(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
print(form.cleaned_data)
form.save()
else:
print("pas bon")
form = ContactForm()
return render(request, 'pages/home/home.html', {'form': form})
Et voici mon fichier url :
urlpatterns = [
path('django-admin/', admin.site.urls),
path('admin/', include("wagtail.admin.urls")),
path('', contact_view, name='contact'),
path('documents/', include("wagtail.documents.urls")),
path("", include('wagtail.urls')),
]
Et ça c'est mon template home.html :
<section class="contact" id="contact">
<h1 class="heading"><span>contactez</span> nous</h1>
<div class="row">
<div class="image">
<img alt="" src="{% static 'images/contact-us.png' %}"/>
</div>
<form action="{% url 'contact' %}" method="POST">
{% csrf_token %}
<span>Nom et prénom</span>
{{ form.name }}
<span>Adresse mail</span>
{{ form.email }}
<span>Numéro de téléphone</span>
{{ form.phone_number }}
<span>Motif de la demande</span>
{{ form.reason }}
<input class="btn" type="submit" value="Envoyer"/>
</form>
</div>
</section>
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte